<SEC-DOCUMENT>0001437749-21-004994.txt : 20210304
<SEC-HEADER>0001437749-21-004994.hdr.sgml : 20210304
<ACCEPTANCE-DATETIME>20210304161442
ACCESSION NUMBER:		0001437749-21-004994
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		105
CONFORMED PERIOD OF REPORT:	20201231
FILED AS OF DATE:		20210304
DATE AS OF CHANGE:		20210304

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			NORTHWEST PIPE CO
		CENTRAL INDEX KEY:			0001001385
		STANDARD INDUSTRIAL CLASSIFICATION:	STEEL PIPE & TUBES [3317]
		IRS NUMBER:				930557988
		STATE OF INCORPORATION:			OR
		FISCAL YEAR END:			1231

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

	BUSINESS ADDRESS:	
		STREET 1:		201 NE PARK PLAZA DRIVE
		STREET 2:		SUITE 100
		CITY:			VANCOUVER
		STATE:			WA
		ZIP:			98684
		BUSINESS PHONE:		3603976250

	MAIL ADDRESS:	
		STREET 1:		201 NE PARK PLAZA DRIVE
		STREET 2:		SUITE 100
		CITY:			VANCOUVER
		STATE:			WA
		ZIP:			98684
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>nwpx20201231_10k.htm
<DESCRIPTION>FORM 10-K
<TEXT>
<XBRL>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ref="http://www.xbrl.org/2006/ref" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2015-02-26" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:us-types="http://fasb.org/us-types/2017-01-31" xmlns:srt-types="http://fasb.org/srt-types/2017-01-31" xmlns:utreg="http://www.xbrl.org/2009/utr" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:us-roles="http://fasb.org/us-roles/2017-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thunderdome="http://www.RDGFilings.com" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2019-01-31" xmlns:nwpx="http://www.nwpipe.com/20201231" xmlns:currency="http://xbrl.sec.gov/currency/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:rr="http://xbrl.sec.gov/rr/2018-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:sic="http://xbrl.sec.gov/sic/2020-01-31" xmlns:exch="http://xbrl.sec.gov/exch/2020-01-31" xmlns:country="http://xbrl.sec.gov/country/2020-01-31">
 <head>
  <title>nwpx20201231_10k.htm</title>
  <!-- Generated by ThunderDome Portal - 3/3/2021 8:07:19 PM -->
  <meta http-equiv="Content-Type" content="text/html" /></head>
 <body style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0in 0.1in; cursor: auto;"><div style="display: none;"><ix:header><ix:hidden>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:EntityCentralIndexKey" id="thunderdome-EntityCentralIndexKey">0001001385</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:EntityRegistrantName" id="thunderdome-EntityRegistrantName">Northwest Pipe Co.</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:AmendmentFlag" format="ixt:booleanfalse">false</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:CurrentFiscalYearEndDate">--12-31</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:DocumentFiscalPeriodFocus">FY</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="dei:DocumentFiscalYearFocus">2020</ix:nonNumeric>
<ix:nonFraction id="c70013667" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" format="ixt:numdotdecimal" decimals="-3">767</ix:nonFraction>
<ix:nonFraction id="c70013668" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" format="ixt:numdotdecimal" decimals="-3">801</ix:nonFraction>
<ix:nonFraction id="c70013714" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:CommitmentsAndContingencies" scale="3" xsi:nil="true"></ix:nonFraction>
<ix:nonFraction id="c70013715" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:CommitmentsAndContingencies" scale="3" xsi:nil="true"></ix:nonFraction>
<ix:nonFraction id="c70013719" contextRef="i_2020-12-31" unitRef="USDPerShare" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" format="ixt:numdotdecimal" decimals="INF">0.01</ix:nonFraction>
<ix:nonFraction id="c70013720" contextRef="i_2019-12-31" unitRef="USDPerShare" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" format="ixt:numdotdecimal" decimals="INF">0.01</ix:nonFraction>
<ix:nonFraction id="c70013721" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesAuthorized" scale="0" format="ixt:numdotdecimal" decimals="INF">10,000,000</ix:nonFraction>
<ix:nonFraction id="c70013722" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesAuthorized" scale="0" format="ixt:numdotdecimal" decimals="INF">10,000,000</ix:nonFraction>
<ix:nonFraction id="c70013723" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesIssued" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70013725" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70013724" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesIssued" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70013726" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:PreferredStockSharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70013729" contextRef="i_2020-12-31" unitRef="USDPerShare" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" format="ixt:numdotdecimal" decimals="INF">0.01</ix:nonFraction>
<ix:nonFraction id="c70013730" contextRef="i_2019-12-31" unitRef="USDPerShare" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" format="ixt:numdotdecimal" decimals="INF">0.01</ix:nonFraction>
<ix:nonFraction id="c70013731" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:CommonStockSharesAuthorized" scale="0" format="ixt:numdotdecimal" decimals="INF">15,000,000</ix:nonFraction>
<ix:nonFraction id="c70013732" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:CommonStockSharesAuthorized" scale="0" format="ixt:numdotdecimal" decimals="INF">15,000,000</ix:nonFraction>
<ix:nonFraction id="c70013733" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:CommonStockSharesIssued" scale="0" format="ixt:numdotdecimal" decimals="INF">9,805,437</ix:nonFraction>
<ix:nonFraction id="c70013735" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:CommonStockSharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,805,437</ix:nonFraction>
<ix:nonFraction id="c70013734" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:CommonStockSharesIssued" scale="0" format="ixt:numdotdecimal" decimals="INF">9,746,979</ix:nonFraction>
<ix:nonFraction id="c70013736" contextRef="i_2019-12-31" unitRef="Share" name="us-gaap:CommonStockSharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,746,979</ix:nonFraction>
<ix:nonFraction id="c70014065" contextRef="d_2020-01-01_2020-12-31" unitRef="Pure" name="us-gaap:NumberOfOperatingSegments" scale="0" format="ixt:numdotdecimal" decimals="INF">1</ix:nonFraction>
<ix:nonFraction id="c70014144" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.7</ix:nonFraction>
<ix:nonFraction id="c70014175" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70014191" contextRef="d_2020-01-01_2020-12-31" unitRef="Pure" name="nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" scale="0" format="ixt:numdotdecimal" decimals="INF">1</ix:nonFraction>
<ix:nonFraction id="c70014192" contextRef="d_2019-01-01_2019-12-31" unitRef="Pure" name="nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" scale="0" format="ixt:numdotdecimal" decimals="INF">1</ix:nonFraction>
<ix:nonFraction id="c70014560" contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" unitRef="USD" name="us-gaap:OperatingLeaseLiability" scale="6" format="ixt:numdotdecimal" decimals="-6">8.0</ix:nonFraction>
<ix:nonFraction id="c70014698" contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" unitRef="CAD" name="us-gaap:DerivativeNotionalAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">19.5</ix:nonFraction>
<ix:nonFraction id="c70014700" contextRef="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" unitRef="CAD" name="us-gaap:DerivativeNotionalAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">7.9</ix:nonFraction>
<ix:nonFraction id="c70017463" contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" scale="-2" format="ixt:numdotdecimal" decimals="1">50</ix:nonFraction>
<ix:nonFraction id="c70017464" contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" scale="-2" format="ixt:numdotdecimal" decimals="1">50</ix:nonFraction>
<ix:nonFraction id="c70014736" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="Pure" name="nwpx:NumberOfNoncontributoryDefinedBenefitPlans" scale="0" format="ixt:numdotdecimal" decimals="INF">2</ix:nonFraction>
<ix:nonFraction id="c70014744" contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>
<ix:nonFraction id="c70014746" contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" scale="6" format="ixt:numdotdecimal" decimals="-5">1.8</ix:nonFraction>
<ix:nonFraction id="c70014759" contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70014760" contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70017468" contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="6" format="ixt:numdotdecimal" decimals="-5">4.7</ix:nonFraction>
<ix:nonFraction id="c70017469" contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="6" format="ixt:numdotdecimal" decimals="-5">5.2</ix:nonFraction>
<ix:nonFraction id="c70014794" contextRef="d_2020-01-01_2020-12-31" unitRef="Pure" name="nwpx:NumberOfActiveStockIncentivePlans" scale="0" format="ixt:numdotdecimal" decimals="INF">1</ix:nonFraction>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" id="c70014802" format="ixt-sec:duryear">10</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="c70014825" format="ixt-sec:duryear">3</ix:nonNumeric>
<ix:nonFraction id="c70014804" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70014805" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70014818" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70017481" contextRef="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" unitRef="Pure" name="nwpx:NumberOfMajorCustomers" scale="0" format="ixt:numdotdecimal" decimals="INF">1</ix:nonFraction>
<ix:nonNumeric contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="c70014989" format="ixt-sec:duryear">1</ix:nonNumeric>
<ix:nonNumeric contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01" name="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" id="c70014991" format="ixt-sec:duryear">1</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MinimumMember" name="nwpx:TaxCreditCarryforwardExpirationYear" id="c70015027">2023</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MaximumMember" name="nwpx:TaxCreditCarryforwardExpirationYear" id="c70015028">2034</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember" name="nwpx:TaxCreditCarryforwardExpirationYear" id="c70015030">2024</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MinimumMember" name="nwpx:OperatingLossCarryforwardsExpirationYear" id="c70015034">2021</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MaximumMember" name="nwpx:OperatingLossCarryforwardsExpirationYear" id="c70015035">2038</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember" name="nwpx:TaxCreditCarryforwardExpirationYear" id="c70015037">2021</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MinimumMember" name="nwpx:OperatingLossCarryforwardsExpirationYear" id="c70015041">2023</ix:nonNumeric>
<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MaximumMember" name="nwpx:OperatingLossCarryforwardsExpirationYear" id="c70015042">2030</ix:nonNumeric>
<ix:nonFraction id="c70015050" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70015051" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>
<ix:nonFraction id="c70015062" contextRef="d_2019-01-01_2019-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" format="ixt:numdotdecimal" decimals="2">21</ix:nonFraction>
<ix:nonFraction id="c70015063" contextRef="d_2018-01-01_2018-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" format="ixt:numdotdecimal" decimals="2">21</ix:nonFraction>
<ix:footnote xml:lang="en-us" id="f65242d5c-da09-425f-b26d-54bdbc53f29d">Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.</ix:footnote>
<ix:footnote xml:lang="en-us" id="fcd6d0607-cb88-4493-a923-ba0495594941">The number of PSAs disclosed in this table are at the target level of 100%.</ix:footnote>
<ix:footnote xml:lang="en-us" id="f3da7990e-1591-4855-b73d-0cf3d94a4f98">There were no antidilutive shares for the years ended December 31, 2020 or 2019. The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 63,000 for the year ended December 31, 2018, including approximately 39,000 of PSAs, at the target level of 100%, that were not included because the performance conditions had not been met as of December 31, 2018.</ix:footnote>
<ix:footnote xml:lang="en-us" id="f50ad1074-50b1-4ef8-b389-20740dafcdbd">For the PSAs vested on March 31, 2020; the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of 136%, based on the performance-based conditions achieved.</ix:footnote>
<ix:footnote xml:lang="en-us" id="fad4a6f03-ae2c-4974-bc97-3538ac648568">Current portion of finance lease liabilities are included in Accrued liabilities.</ix:footnote>
<ix:footnote xml:lang="en-us" id="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32">Finance lease right-of-use assets are presented net of accumulated amortization of $1.3 million and $0.9 million as of December 31, 2020 and 2019, respectively.</ix:footnote></ix:hidden>
<ix:references>
<link:schemaRef xlink:href="nwpx-20201231.xsd" xlink:type="simple"></link:schemaRef></ix:references>
<ix:resources>
<xbrli:context id="d_2020-01-01_2020-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:unit id="USD"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit>
<xbrli:context id="i_2020-06-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-06-30</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:unit id="Share"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit>
<xbrli:context id="i_2021-02-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-02-22</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:unit id="NonApplicable"><xbrli:measure>thunderdome:item</xbrli:measure></xbrli:unit>
<xbrli:context id="d_2019-01-01_2019-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:unit id="USDPerShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit>
<xbrli:context id="i_2020-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><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="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><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="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><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="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><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="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:unit id="Pure"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit>
<xbrli:context id="d_2019-01-01_2019-03-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-OutOfPeriodAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis">nwpx:OutOfPeriodAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-03-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:unit id="Year"><xbrli:measure>utr:Y</xbrli:measure></xbrli:unit>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:AccruedLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:AccruedLiabilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-01-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-31</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-31_2020-01-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-31</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-04-01_2020-06-30_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-04-01</xbrli:startDate><xbrli:endDate>2020-06-30</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-31</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-31</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">nwpx:BacklogMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-31</xbrli:startDate><xbrli:endDate>2020-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-02-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-02-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-07-27</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-07-27</xbrli:startDate><xbrli:endDate>2018-07-27</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-10-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-26</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUnitilFebruary2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">nwpx:PlacedInEscrowUnitilFebruary2018Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-12-26</xbrli:startDate><xbrli:endDate>2017-12-26</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUntilDecember2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">nwpx:PlacedInEscrowUntilDecember2018Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-12-26</xbrli:startDate><xbrli:endDate>2017-12-26</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:EquipmentUnderFinanceLeaseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:EquipmentUnderFinanceLeaseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementGeographicalAxis-MX"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_StatementGeographicalAxis-MX"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:MonterreyMexicoFacilityMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-12-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:PropertyInHoustonTexasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-08-01</xbrli:startDate><xbrli:endDate>2018-08-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-10-25_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-10-25</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-10-25</xbrli:startDate><xbrli:endDate>2018-10-25</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-10-25</xbrli:startDate><xbrli:endDate>2018-10-25</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-10-25</xbrli:startDate><xbrli:endDate>2018-10-25</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-10-25</xbrli:startDate><xbrli:endDate>2018-10-25</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-03-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-01-01</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:PropertyAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:PropertyAndEquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><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="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:unit id="CAD"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit>
<xbrli:context id="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherNoncurrentAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherNoncurrentAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-CostOfSalesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:unit id="Month"><xbrli:measure>utr:M</xbrli:measure></xbrli:unit>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-PerformanceSharesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-01-31_CounterpartyNameAxis-LowerWillametteGroupMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">nwpx:LowerWillametteGroupMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-01-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:EnvironmentalRemediationSiteAxis">nwpx:PortlandHarborSuperfundSiteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2017-01-01</xbrli:startDate><xbrli:endDate>2017-01-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:EnvironmentalRemediationSiteAxis">nwpx:PortlandHarborSuperfundSiteMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-01-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2014-06-30_LossContingenciesByNatureOfContingencyAxis-PortlandHarborNaturalreSourcesTrusteeCouncilMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">nwpx:PortlandHarborNaturalreSourcesTrusteeCouncilMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2014-06-30</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_NoncatastrophicEventAxis-FireMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_NoncatastrophicEventAxis-FireMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-01-01</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementGeographicalAxis-US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementGeographicalAxis-US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementGeographicalAxis-US"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementGeographicalAxis-CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_StatementGeographicalAxis-CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_StatementGeographicalAxis-CA"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2021-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"><us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain></xbrldi:typedMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_BalanceSheetLocationAxis-OtherAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_BalanceSheetLocationAxis-OtherAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:CapitalLossCarryforwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:CapitalLossCarryforwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MinimumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MaximumMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</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-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2017-01-01_2017-12-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2017-01-01</xbrli:startDate><xbrli:endDate>2017-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-01-01"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-01-01</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-DemobilizationActivitiesMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">nwpx:DemobilizationActivitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2020-01-01</xbrli:startDate><xbrli:endDate>2020-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2019-01-01</xbrli:startDate><xbrli:endDate>2019-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<xbrli:context id="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2017-12-31</xbrli:instant></xbrli:period></xbrli:context>
<xbrli:context id="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0001001385</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2018-01-01</xbrli:startDate><xbrli:endDate>2018-12-31</xbrli:endDate></xbrli:period></xbrli:context>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="f65242d5c-da09-425f-b26d-54bdbc53f29d" fromRefs="c70014630"></ix:relationship>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="fcd6d0607-cb88-4493-a923-ba0495594941" fromRefs="c70014895 c70014897 c70014899 c70014901 c70014903"></ix:relationship>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="f3da7990e-1591-4855-b73d-0cf3d94a4f98" fromRefs="c70014266 c70014267 c70014268"></ix:relationship>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="f50ad1074-50b1-4ef8-b389-20740dafcdbd" fromRefs="c70014901 c70014902"></ix:relationship>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="fad4a6f03-ae2c-4974-bc97-3538ac648568" fromRefs="c70014628"></ix:relationship>
<ix:relationship linkRole="http://www.xbrl.org/2003/role/link" arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" toRefs="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32" fromRefs="c70014584 c70014585"></ix:relationship></ix:resources>
</ix:header></div>
  <div>
    &#xa0;
  </div>
  <div><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt;"><a href="#toc" style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">Table of Contents</a></p>
<hr style="height: 3px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 3pt 0" />
<hr style="height: 1px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 0 0 3pt 0" />
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>UNITED STATES</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>SECURITIES AND EXCHANGE COMMISSION</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>Washington, D.C. 20549</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#xa0;</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>FORM <ix:nonNumeric name="dei:DocumentType" contextRef="d_2020-01-01_2020-12-31">10-K</ix:nonNumeric></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b><ix:nonNumeric name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox" contextRef="d_2020-01-01_2020-12-31">&#x2612;</ix:nonNumeric></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</b></p> </td></tr>
</tbody></table>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">For the fiscal year ended: <b></b><ix:nonNumeric name="dei:DocumentPeriodEndDate" format="ixt:datemonthdayyearen" contextRef="d_2020-01-01_2020-12-31"><b>December&#xa0;31, 20</b><b>20</b></ix:nonNumeric><b></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">or</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><ix:nonNumeric name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" contextRef="d_2020-01-01_2020-12-31">&#x2610;</ix:nonNumeric></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934</b></p> </td></tr>
</tbody></table>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">For the transition period from &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0; to &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">Commission file number: <b><ix:nonNumeric name="dei:EntityFileNumber" contextRef="d_2020-01-01_2020-12-31">0-27140</ix:nonNumeric></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Exact name of registrant as specified in its charter)</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;&#xa0;</p>
<table cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; margin-right: 0pt;"><tbody><tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="vertical-align: top; width: 50%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><ix:nonNumeric name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" contextRef="d_2020-01-01_2020-12-31">Oregon</ix:nonNumeric></b></p> </td><td style="vertical-align: top; width: 50%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><ix:nonNumeric name="dei:EntityTaxIdentificationNumber" contextRef="d_2020-01-01_2020-12-31">93-0557988</ix:nonNumeric></b></p> </td></tr>
<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="vertical-align: top; width: 50%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">State or other jurisdiction&#xa0;of incorporation or organization</p> </td><td style="vertical-align: top; width: 50%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">(I.R.S. Employer&#xa0;Identification No.)</p> </td></tr>
</tbody></table>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;&#xa0;&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><ix:nonNumeric name="dei:EntityAddressAddressLine1" contextRef="d_2020-01-01_2020-12-31">201 NE Park Plaza Drive, Suite 100</ix:nonNumeric></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><ix:nonNumeric name="dei:EntityAddressCityOrTown" contextRef="d_2020-01-01_2020-12-31">Vancouver</ix:nonNumeric>, <ix:nonNumeric name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" contextRef="d_2020-01-01_2020-12-31">Washington</ix:nonNumeric> <ix:nonNumeric name="dei:EntityAddressPostalZipCode" contextRef="d_2020-01-01_2020-12-31">98684</ix:nonNumeric></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Address of principal executive offices and Zip Code)</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">Registrant&#x2019;s telephone number, including area code: <b><ix:nonNumeric name="dei:CityAreaCode" contextRef="d_2020-01-01_2020-12-31">360</ix:nonNumeric>-<ix:nonNumeric name="dei:LocalPhoneNumber" contextRef="d_2020-01-01_2020-12-31">397-6250</ix:nonNumeric></b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">Securities registered pursuant to Section&#xa0;12(b) of the Act:</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;&#xa0;</p>
<table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;"><tbody><tr><td style="vertical-align:bottom;width:40.2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><span style="text-decoration: underline; ">&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0; Title of each class &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</span></p> </td><td style="vertical-align:top;width:20%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><span style="text-decoration: underline; ">&#xa0;&#xa0;Trading Symbol(s)&#xa0;&#xa0;</span></p> </td><td style="vertical-align:bottom;width:39.8%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><span style="text-decoration: underline; ">&#xa0;&#xa0;&#xa0; Name of each exchange on which registered &#xa0;&#xa0;&#xa0;&#xa0;</span></p> </td></tr>
<tr><td style="vertical-align:top;width:40.2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><ix:nonNumeric name="dei:Security12bTitle" contextRef="d_2020-01-01_2020-12-31">Common Stock, par value $0.01 per share</ix:nonNumeric></b></p> </td><td style="vertical-align:top;width:20%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><ix:nonNumeric name="dei:TradingSymbol" contextRef="d_2020-01-01_2020-12-31">NWPX</ix:nonNumeric></b></p> </td><td style="vertical-align:top;width:39.8%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><ix:nonNumeric name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" contextRef="d_2020-01-01_2020-12-31">Nasdaq</ix:nonNumeric> Global Select Market</b></p> </td></tr>
</tbody></table>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">Securities registered pursuant to section&#xa0;12(g) of the Act: <b>None</b></p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule&#xa0;405 of the Securities Act.&#xa0;&#xa0;&#xa0;&#xa0;Yes&#xa0;&#xa0;&#x2610;&#xa0;&#xa0;&#xa0;&#xa0;<ix:nonNumeric name="dei:EntityWellKnownSeasonedIssuer" contextRef="d_2020-01-01_2020-12-31">No</ix:nonNumeric>&#xa0;&#xa0;&#x2612;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark if the registrant is not required to file reports pursuant to Section&#xa0;13 or Section&#xa0;15(d) of the Act.&#xa0;&#xa0;&#xa0;&#xa0;Yes&#xa0;&#xa0;&#x2610;&#xa0;&#xa0;&#xa0;&#xa0;<ix:nonNumeric name="dei:EntityVoluntaryFilers" contextRef="d_2020-01-01_2020-12-31">No</ix:nonNumeric>&#xa0;&#xa0;&#x2612;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark whether the registrant (1)&#xa0;has filed all reports required to be filed by Section&#xa0;13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12&#xa0;months (or for such shorter period that the registrant was required to file such reports), and (2)&#xa0;has been subject to such filing requirements for the past 90 days.&#xa0;&#xa0;&#xa0;&#xa0;<ix:nonNumeric name="dei:EntityCurrentReportingStatus" contextRef="d_2020-01-01_2020-12-31">Yes</ix:nonNumeric>&#xa0;&#xa0;&#x2612;&#xa0;&#xa0;&#xa0;&#xa0;No&#xa0;&#xa0;&#x2610;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule&#xa0;405 of Regulation&#xa0;S-T (&#xa7;232.405 of this chapter) during the preceding 12&#xa0;months (or for such shorter period that the registrant was required to submit such files).&#xa0;&#xa0;&#xa0;&#xa0;<ix:nonNumeric name="dei:EntityInteractiveDataCurrent" contextRef="d_2020-01-01_2020-12-31">Yes</ix:nonNumeric>&#xa0;&#xa0;&#x2612;&#xa0;&#xa0;&#xa0;&#xa0;No&#xa0;&#xa0;&#x2610;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
 <div class="PGFTR" style="text-align: center; width: 100%">
  <div class="hf-row">
   <div class="hf-cell PGNUM" style="margin: 0pt;">
    &#xa0;
   </div>
  </div>
 </div>
 <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
 <div class="PGHDR" style="text-align: left; width: 100%">
  <div class="hf-row">
   <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
    <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
   </div>
  </div>
 </div>
</div>
<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">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 &#x201c;large accelerated filer,&#x201d; &#x201c;accelerated filer,&#x201d; &#x201c;smaller reporting company,&#x201d; and &#x201c;emerging growth company&#x201d; in Rule&#xa0;12b-2 of the Exchange Act.</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
<table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><tbody><tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Large&#xa0;accelerated&#xa0;filer</p> </td><td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#x2610;</p> </td><td style="vertical-align: bottom; width: 40%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><ix:nonNumeric name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" contextRef="d_2020-01-01_2020-12-31">Accelerated&#xa0;filer</ix:nonNumeric></p> </td><td style="vertical-align: bottom; width: 5%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">&#x2612;</p> </td></tr>
<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Non-accelerated&#xa0;filer</p> </td><td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#x2610;</p> </td><td style="vertical-align: bottom; width: 40%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Smaller&#xa0;reporting&#xa0;company</p> </td><td style="vertical-align: bottom; width: 5%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;"><ix:nonNumeric name="dei:EntitySmallBusiness" format="ixt-sec:boolballotbox" contextRef="d_2020-01-01_2020-12-31">&#x2612;</ix:nonNumeric></p> </td></tr>
<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td><td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td><td style="vertical-align: bottom; width: 40%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Emerging&#xa0;growth&#xa0;company</p> </td><td style="vertical-align: bottom; width: 5%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;"><ix:nonNumeric name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox" contextRef="d_2020-01-01_2020-12-31">&#x2610;</ix:nonNumeric></p> </td></tr>
</tbody></table>
<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section&#xa0;13(a) of the Exchange Act.&#xa0;&#xa0;&#xa0;&#xa0;&#x2610;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#x2019;s assessment of the effectiveness of its internal control over financial reporting under Section&#xa0;404(b) of the Sarbanes-Oxley Act (15&#xa0;U.S.C.&#xa0;7262(b)) by the registered public accounting firm that prepared or issued its audit report. &#xa0;&#xa0;&#xa0;&#xa0;&#x2612;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Indicate by check mark whether the registrant is a shell company (as defined in Rule&#xa0;12b-2 of the Act).&#xa0;&#xa0;&#xa0;&#xa0;Yes&#xa0;&#xa0;<ix:nonNumeric name="dei:EntityShellCompany" format="ixt-sec:boolballotbox" contextRef="d_2020-01-01_2020-12-31">&#x2610;</ix:nonNumeric>&#xa0;&#xa0;&#xa0;&#xa0;No&#xa0;&#xa0;&#x2612;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The aggregate market value of the common equity that was held by non-affiliates of the registrant was $<ix:nonFraction name="dei:EntityPublicFloat" scale="0" unitRef="USD" decimals="INF" format="ixt:numdotdecimal" contextRef="i_2020-06-30">240,361,182</ix:nonFraction> as of June&#xa0;30, 2020 based upon the last sales price as reported by the Nasdaq Global Select Market.</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The number of shares outstanding of the registrant&#x2019;s common stock as of February&#xa0;22, 2021 was <ix:nonFraction name="dei:EntityCommonStockSharesOutstanding" scale="0" unitRef="Share" decimals="INF" format="ixt:numdotdecimal" contextRef="i_2021-02-22">9,814,398</ix:nonFraction>&#xa0;shares.</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">DOCUMENTS INCORPORATED BY REFERENCE</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The registrant has incorporated into Parts II and III of Form&#xa0;10-K by reference certain portions of its 2019 Form&#xa0;10-K, which was filed with the Securities and Exchange Commission (&#x201c;SEC&#x201d;) on March&#xa0;3, 2020, and its Proxy Statement for its 2021 Annual Meeting of Shareholders.</p>
<p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
<hr style="height: 3px; color: #000000; background-color: #000000; width: 100%; border: none; margin: 0 0 3pt 0" />
<p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
<div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
 <div class="PGFTR" style="text-align: center; width: 100%">
  <div class="hf-row">
   <div class="hf-cell PGNUM" style="margin: 0pt;">
    &#xa0;
   </div>
  </div>
 </div>
 <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
 <div class="PGHDR" style="text-align: left; width: 100%">
  <div class="hf-row">
   <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
    <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
   </div>
  </div>
 </div>
</div>
<p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p></div>
  <div>
    &#xa0;
  </div>
  <div>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>20</b><b>20</b><b> ANNUAL REPORT ON FORM 10-K</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="toc" title="toc" href="#"></a>TABLE OF CONTENTS</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
    <tbody>
     <tr>
      <td colspan="2" style="vertical-align: bottom; width: 7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;border-bottom:solid 1px #000000;;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Page</b></p> </td>
     </tr>

     <tr>
      <td colspan="2" style="vertical-align: top; width: 7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#caution" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Cautionary Statement Regarding Forward-Looking Statements</span></a></p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">1</p> </td>
     </tr>

     <tr>
      <td colspan="2" style="vertical-align: top; width: 7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><a href="#part1" style="-sec-extract:exhibit;"><span style="text-decoration: underline; "><b>Part I</b></span></a></p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;1</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item1" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Business</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">2</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;1A</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item1a" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Risk Factors</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">9</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;1B</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item1b" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Unresolved Staff Comments</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">17</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;2</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item2" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Properties</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">18</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;3</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item3" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Legal Proceedings</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">18</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;4</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item4" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Mine Safety Disclosures</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">18</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><a href="#part2" style="-sec-extract:exhibit;"><span style="text-decoration: underline; "><b>Part II</b></span></a></p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;5</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item5" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Market for Registrant&#x2019;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">18</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;6</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item6" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Selected Financial Data</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">20</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;7</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item7" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Management&#x2019;s Discussion and Analysis of Financial Condition and Results of Operations</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">20</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;7A</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item7a" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Quantitative and Qualitative Disclosures About Market Risk</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">27</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;8</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item8" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Financial Statements and Supplementary Data</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">28</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;9</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item9" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Changes in and Disagreements With Accountants on Accounting and Financial Disclosure</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">28</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;9A</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item9a" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Controls and Procedures</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">28</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;9B</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item9b" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Other Information</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">29</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><a href="#part3" style="-sec-extract:exhibit;"><span style="text-decoration: underline; "><b>Part III</b></span></a></p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;10</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item10" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Directors, Executive Officers and Corporate Governance</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">29</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;11</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item11" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Executive Compensation</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">31</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;12</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item12" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">31</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;13</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item13" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Certain Relationships and Related Transactions, and Director Independence</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">31</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;14</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item14" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Principal </span><span style="text-decoration: underline; ">Accountant </span><span style="text-decoration: underline; ">Fees and Services</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">31</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><a href="#part4" style="-sec-extract:exhibit;"><span style="text-decoration: underline; "><b>Part IV</b></span></a></p> </td>
      <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:top;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:middle;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:middle;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;15</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item15" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Exhibit</span><span style="text-decoration: underline; "> and</span><span style="text-decoration: underline; "> Financial Statement Schedules</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">32</p> </td>
     </tr>

     <tr>
      <td style="vertical-align:top;width:7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Item&#xa0;16</p> </td>
      <td style="vertical-align:bottom;width:86%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><a href="#item16" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Form 10-K Summary</span></a></p> </td>
      <td style="vertical-align:bottom;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
      <td style="vertical-align:bottom;width:5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">34</p> </td>
     </tr>

    </tbody>
   </table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="margin: 0pt;">
        &#xa0;
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </div>
   <div>
     &#xa0;
   </div>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  </div>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="caution" title="caution" href="#"></a>CAUTIONARY STATEMENT REGARDING FORWARD-LOOKING STATEMENTS</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Certain statements in this Annual Report on Form&#xa0;10-K for the year ended December&#xa0;31, 2020 (&#x201c;2020 Form&#xa0;10-K&#x201d;), other than purely historical information, are &#x201c;forward-looking statements&#x201d; within the meaning of the Private Securities Litigation Reform Act of 1995 and Section&#xa0;21E of the Securities Exchange Act of 1934, as amended (&#x201c;Exchange Act&#x201d;), that are based on current expectations, estimates, and projections about our business, management&#x2019;s beliefs, and assumptions made by management. Words such as &#x201c;expects,&#x201d; &#x201c;anticipates,&#x201d; &#x201c;intends,&#x201d; &#x201c;plans,&#x201d; &#x201c;believes,&#x201d; &#x201c;seeks,&#x201d; &#x201c;estimates,&#x201d; &#x201c;forecasts,&#x201d; &#x201c;should,&#x201d; &#x201c;could,&#x201d; and variations of such words and similar expressions are intended to identify such forward-looking statements. These statements are not guarantees of future performance and involve risks and uncertainties that are difficult to predict. Therefore, actual outcomes and results may differ materially from what is expressed or forecasted in such forward-looking statements as a result of a variety of important factors. While it is impossible to identify all such factors, those that could cause actual results to differ materially from those estimated by us include:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:94.9%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">changes in demand and market prices for our products;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">product mix;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">bidding activity and order cancelations;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">timing of customer orders and deliveries;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">production schedules;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">price and availability of raw materials;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">excess or shortage of production capacity;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">international trade policy and regulations;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">changes in tariffs and duties imposed on imports and exports and related impacts on us;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">our ability to identify and complete internal initiatives and/or acquisitions in order to grow our business;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">our ability to effectively integrate Geneva Pipe and Precast Company (&#x201c;Geneva&#x201d;) and other acquisitions into our business and operations and achieve significant administrative and operational cost synergies and accretion to financial results;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">impacts of recent U.S. tax reform legislation on our results of operations;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">adequacy of our insurance coverage;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">operating problems at our manufacturing operations including fires, explosions, inclement weather, and natural disasters;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">impacts of pandemics, epidemics, or other public health emergencies,&#xa0;such as coronavirus disease 2019 (&#x201c;COVID-19&#x201d;); and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:middle;width:3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="vertical-align:top;width:95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">other risks discussed in Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; of this 2020 Form&#xa0;10-K and from time to time in our other SEC filings and reports.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Such forward-looking statements speak only as of the date on which they are made, and we do not undertake any obligation to update any forward-looking statement to reflect events or circumstances after the date of this 2020 Form&#xa0;10-K. If we do update or correct one or more forward-looking statements, investors and others should not conclude that we will make additional updates or corrections with respect thereto or with respect to other forward-looking statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       1
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="part1" title="part1" href="#"></a>PART I</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item1" title="item1" href="#"></a>Item&#xa0;1.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Business</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Unless otherwise indicated, the terms &#x201c;the Company,&#x201d; &#x201c;we,&#x201d; &#x201c;our,&#x201d; and &#x201c;us&#x201d; are used in this 2020 Form&#xa0;10-K to refer to Northwest Pipe Company or one of our consolidated subsidiaries or to all of them taken as a whole. We were incorporated in the State of Oregon in 1966.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Overview</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Northwest Pipe Company is a leading manufacturer for water related infrastructure products. In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, we produce high-quality precast and reinforced concrete products, Permalok&#xae; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and one of the largest offerings of fittings and specialized components. Our ten manufacturing facilities are strategically positioned to meet growing water and wastewater infrastructure needs. We provide solution-based products for a wide range of markets including water transmission and infrastructure, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. Our prominent position is based on a widely-recognized reputation for quality, service, and manufacturing to meet performance expectations in all categories including highly-corrosive environments.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our water infrastructure products are sold generally to installation contractors, who include our products in their bids to federal, state, and municipal agencies, privately-owned water companies, or developers for specific projects. We believe our sales are substantially driven by spending on urban growth and new water infrastructure with a recent trend towards spending on water infrastructure replacement, repair, and upgrade. Within the total range of products, our steel pipe tends to fit the larger-diameter, higher-pressure pipeline applications, while our precast concrete products mainly serve stormwater and sanitary sewer systems.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">With steady population growth and regional community expansion, as well as continued drought conditions, existing water sources have become stressed, and we see continued opportunities for growth in North American infrastructure.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Recent Strategic Actions</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On January&#xa0;31, 2020, we completed the acquisition of 100% of Geneva Pipe and Precast Company (fka Geneva Pipe Company,&#xa0;Inc.) for a purchase price of $49.4&#xa0;million. Geneva is a concrete pipe and precast concrete products manufacturer based in Utah. This acquisition expanded our water infrastructure product capabilities by adding additional reinforced concrete pipe capacity and a full line of precast concrete products including storm drains and manholes, catch basins, vaults, and curb inlets as well as innovative lined products that extend the life of concrete pipe and manholes for sewer applications. Operations have continued with Geneva's previous management and workforce at its three manufacturing facilities.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Impact of </b><b>the </b><b>COVID-19 </b><b>P</b><b>andemic </b><b>on </b><b>O</b><b>ur Business</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In March 2020, the World Health Organization declared COVID-19 a pandemic. The COVID-19 pandemic has resulted in governments around the world implementing increasingly stringent measures to help control the spread of the virus, including quarantines, &#x201c;shelter in place&#x201d; and &#x201c;stay at home&#x201d; orders, travel restrictions, business curtailments, school closures, and other measures. In addition, governments and central banks in several parts of the world have enacted fiscal and monetary stimulus measures to counteract the economic impacts of the COVID-19 pandemic.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Consistent with national guidelines and with state and local orders to date, we currently continue to operate our manufacturing facilities in the United States as we produce critical water infrastructure products. We have taken proactive and precautionary steps to ensure the safety of our employees, customers, and suppliers, including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In early April 2020, we were ordered to close our water infrastructure manufacturing facility in San Luis R&#xed;o Colorado, Mexico (&#x201c;SLRC&#x201d;) as a result of mandates made by Mexican authorities that companies that do not carry out essential activities in Mexico must suspend business operations in order to combat and eradicate the existence and transmission of COVID-19. We diverted orders on a case-by-case basis to our United States-based facilities during this closure. In early June 2020, the Mexican authorities determined our SLRC facility was essential, and allowed weekly increases to our workforce. By July 2020, operations at our SLRC facility were fully restored.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       2
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">While the COVID-19 pandemic has not had a material adverse effect on our reported results for the year ended December&#xa0;31, 2020, we are unable to predict the ultimate impact that the COVID-19 pandemic may have on our business, future results of operations, financial position, or cash flows. The extent to which our operations may be impacted by the COVID-19 pandemic will depend largely on future developments, which are highly uncertain and cannot be accurately predicted, including new information which may emerge concerning the severity of the pandemic and actions by government authorities to contain the pandemic or treat its impact. Furthermore, the impacts on global and domestic economic conditions, including the long-term potential to reduce or delay funding of municipal projects, and the continued disruptions to and volatility in the financial markets remain unknown. We continue to monitor&#xa0;the impact of the COVID-19 pandemic on all aspects of our business.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Our Industry</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Much of the United States water infrastructure is antiquated and many authorities, including the United States Environmental Protection Agency (&#x201c;EPA&#x201d;), believe the United States water infrastructure is in critical need of update, repair, or replacement. In its <i>2015 Drinking Water Infrastructure Needs Survey and Assessment</i> released in March 2018, the EPA estimated the nation will need to spend $473&#xa0;billion in infrastructure investments by 2034 to continue to provide safe drinking water to the public. The American Society of Civil Engineers (&#x201c;ASCE&#x201d;) has given poor ratings to many aspects of the United States water infrastructure in their <i>2017 Infrastructure Report Card for Drinking Water</i>. In its <i>Failure to Act: Closing the Infrastructure Investment Gap for America&#x2019;s Economic Future</i> study published in 2016, the ASCE concludes that significant portions of many municipal water systems are 40 to 50&#xa0;years old and are nearing the end of their useful lives, and estimates there will be $150&#xa0;billion in capital investment needs for water and wastewater infrastructure by 2025, and $204&#xa0;billion in capital investment needs by 2040. The American Water Works Association concluded in their 2012 report, <i>Buried No Longer: Confronting America&#x2019;s Water Infrastructure Challenge</i>, that from 2011 to 2035 more than $1&#xa0;trillion will be needed to repair and expand drinking water infrastructure.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">A combination of new population centers, rising demand on developed water sources, substantial underinvestment in water infrastructure over the past several decades, and increasingly stringent regulatory policies are driving demand for water infrastructure projects in the United States. These trends are intensifying the need for new water infrastructure as well as the need to upgrade, repair, and replace existing water infrastructure. While we believe this offers the potential for increased demand for our water infrastructure products and other products related to water transmission, budgetary pressures could impact governmental and public water agency projects in the near-term.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">According to the United States Census Bureau, the population of the United States will increase by approximately&#xa0;56&#xa0;million people between 2021 and 2050. The resulting increase in demand will require substantial new infrastructure, as the existing United States water infrastructure is not equipped to provide water to millions of new residents. The development of new sources of water at greater distances from population centers will drive the demand for new water transmission lines. The <i>2021 Dodge Construction Outlook</i> forecasts U.S. public works construction starts in 2021 will remain the same as 2020 levels.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As water systems degrade over time and cause failures, many current water supply sources are in danger of being exhausted. Much of the drinking water infrastructure in major cities was built in the mid-20th century with a lifespan of 75&#xa0;to 100&#xa0;years. In its <i>2017 Infrastructure Report Card for Drinking Water</i>, the ASCE estimates there are 240,000 water main breaks per year in the United States, wasting over two trillion gallons of treated drinking water, which equates to 14%&#xa0;to 18% of each day&#x2019;s treated water. The ASCE also reports that with utilities averaging a pipe replacement rate of 0.5% per year, it will take an estimated 200 years to replace the system&#xa0;&#x2013; nearly double the useful life of the pipes. These aging water and wastewater systems will drive demand for future investment.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Finally, the increased public awareness of problems with the quality of drinking water and efficient water usage has resulted in more stringent application of federal and state environmental regulations. The need to comply with these regulations in an environment of heightened public awareness is expected to contribute to demand in the water infrastructure industry.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our large-diameter, engineered welded steel pipeline systems are utilized in water, energy, structural, and plant piping applications. Our core market is the large-diameter, high-pressure portion of a water transmission pipeline that is typically at the &#x201c;upper end&#x201d; of a pipeline system. This is the portion of the overall water pipeline that generally transports water from the source to a treatment plant or from a treatment plant into the distribution system, rather than the small lines that deliver water directly into households. We believe the total addressable market for the engineered welded steel pipeline system products sold will be approximately $1.4&#xa0;billion over the next three years.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       3
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our high-quality precast and reinforced concrete products and&#xa0;bar-wrapped concrete cylinder pipe are typically used in non-pressure, gravity fed sewer and stormwater applications. Demand for these products is generally influenced by general economic conditions such as housing starts, population growth, and interest rates. In 2020, annual housing starts in the United States increased to 1.4&#xa0;million, an increase of 7.0% from 2019, according to the United States Census Bureau.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Federal initiatives to improve the conditions of the aging water infrastructure include the Water Infrastructure and Resiliency Finance Center at the EPA and the Water and Environmental Programs at the U.S. Department of Agriculture. The Water Resources Development Act, which was included in the Water Infrastructure Improvements for the Nation Act signed by the President of the United States in December 2016, authorizes new infrastructure projects around the country and contains substantive provisions in regards to drinking water infrastructure. According to its <i>2020&#xa0;Annual Report</i>, the EPA&#x2019;s Water Infrastructure Finance and Innovation Act program, which provides credit assistance for water infrastructure projects, closed 27 loans totaling over $4&#xa0;billion in 2020. Additionally, the Drinking Water State Revolving Loan Fund, a federal-state partnership and financial assistance program to help water systems and states achieve the health protection objectives of the Safe Drinking Water Act, awarded $6.1&#xa0;billion in grants for Intended Use Plans during the 2019-2020 fiscal year, according to Bluefield Research&#x2019;s July 2020<i> </i>Data Insight<i> State Revolving Funds: Breaking Down Project Data by Requests and Distributions</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In addition to the Federal initiatives, individual states are also taking action. In November 2014, the State of California approved the Water Quality, Supply and Infrastructure Improvement Act which authorizes $7.5&#xa0;billion in general obligation bonds to fund state water supply infrastructure projects, such as public water system improvements, surface and groundwater storage, drinking water protection, water recycling and advanced water treatment technology, water supply management and conveyance, wastewater treatment, drought relief, emergency water supplies, and ecosystem and watershed protection and restoration. The State of Texas has earmarked $27&#xa0;billion of future bond funding for state water projects over the next 50&#xa0;years through their State Water Implementation Fund for Texas (SWIFT). This program provides low-interest and deferred loans to state agencies making approved investments in water infrastructure projects. Our strategically located manufacturing facilities are well-positioned to take advantage of the anticipated growth in demand.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Backlog</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We measure backlog as a key metric to evaluate the commercial health of our business. Backlog represents the balance of remaining performance obligations under signed contracts for water infrastructure steel pipe products for which revenue is recognized over time. Binding agreements received by us may be subject to cancelation or postponement; however, cancelation would obligate the customer to pay the contract consideration proportional to the costs we have incurred through the cancelation date. As of December&#xa0;31, 2020 and 2019, backlog was approximately $167&#xa0;million and $199&#xa0;million, respectively. Backlog as of any particular date may not be indicative of actual operating results for any fiscal period. There can be no assurance that any amount of backlog ultimately will be realized. Separate from our backlog, we have been notified that we are the successful bidder on additional projects, but binding agreements have not been executed (&#x201c;confirmed orders&#x201d;). As of December&#xa0;31, 2020 and 2019, backlog including confirmed orders was approximately $221&#xa0;million and $258&#xa0;million, respectively. Projects for which a binding agreement has not been executed could be canceled.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Products</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Water infrastructure steel pipe is used for high-pressure applications, typically requiring pipe to withstand pressures in excess of 150&#xa0;pounds per square inch. Most of our water transmission products, mainly welded steel pipe and bar-wrapped cylinder pipe, are made to project specifications for fully engineered, large-diameter, high-pressure water infrastructure systems. Other uses include power generation circulating water systems, penstocks, pipe piling, and water and wastewater treatment plants. Spiral welded pipe is manufactured in diameters ranging from 24&#xa0;inches to 156&#xa0;inches with wall thickness of 0.135&#xa0;inch to 1.00&#xa0;inch. Our rolled and welded capabilities allow for manufacturing diameters greater than 156&#xa0;inches or wall thicknesses exceeding 1.00&#xa0;inch. Linings and coating capabilities include cement mortar, polyurethane, epoxies, polyethylene tape, and coal-tar enamel according to our customers&#x2019; project specifications. Fabrication of fittings and specials are performed at our own facilities providing installation contractors and project owners with a complete engineered system. Product is delivered to the jobsite using commercial trucks or marine transport as needed.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We manufacture Permalok&#xae; steel casing pipe, which is a proprietary pipe joining system that employs a press-fit interlocking connection system. The Permalok&#xae; product is generally installed in trenchless construction projects.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       4
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Additionally we manufacture high-quality precast and reinforced concrete products, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and one of the largest offerings of fittings and specialized components typically used in non-pressure, gravity fed sewer and stormwater applications. Our precast products include manholes, box culverts, vaults, catch basins, and other precast infrastructure products. Our reinforced concrete pipe is manufactured in sizes ranging from twelve inches to 96&#xa0;inches in diameter and in a variety of strength classes.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Manufacturing</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Water infrastructure steel pipe manufacturing begins with the preparation of engineered drawings of each unique piece of pipe in a project. These drawings are prepared on our proprietary computer-aided design system and are used as blueprints to manufacture pipe. After the drawings are completed and approved, the manufacturing of engineered steel water pipe begins by feeding a steel coil continuously at a specified angle into a spiral weld mill which cold-forms the band into a tubular configuration with a spiral seam. Automated arc welders, positioned on both the inside and the outside of the tube, are used to weld the seam. The welded pipe is then cut at the specified length. After completion of the forming and welding phases, the finished cylinder is tested and inspected in accordance with project specifications, which may include 100% radiographic analysis of the weld seam. The cylinders are then coated and lined as specified. Possible coatings include polyurethane paint, polyethylene tape, epoxies, cement mortar, coal-tar enamel, and Pritec&#xae;. The inside of the pipe cylinders can be lined with cement mortar, polyurethane, or epoxies. Following coating and lining, certain pieces may be custom fabricated as required for the project. This process is performed at our on-site fabrication facilities. Completed pipes are evaluated for structural integrity with a hydrotester prior to shipment.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We manufacture a wide variety of precast concrete products, including lined manhole systems, box culverts, utility vaults, manholes, catch basins and inlets, and other custom precast structures. Precast concrete products are manufactured using either a dry cast or wet cast concrete mix, depending on the size of the piece and the number of identical pieces to be manufactured. In the dry cast method, a concrete mix with low water content, known as zero-slump concrete, is poured into a mold and then densely compacted around the steel reinforcement using a variety of manufacturing methods. The concrete structure is immediately removed from the mold and allowed to cure in a high humidity environment to ensure proper hydration of the concrete. This method allows multiple pieces to be produced from the same mold each day and is most suitable for high volume, repetitive manufacturing. In the wet cast method, a concrete mix with relatively high water content is poured into a mold and allowed to cure in the mold, which can take from four to 16&#xa0;hours. We also manufacture reinforced concrete pipe by producing a steel mesh cage, enclosing it in a form or mold, and then pouring concrete around it to produce the pipe.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Technology. </b></i>Advances in technology help us produce high-quality products at competitive prices. We have invested in modern welding and inspection equipment to improve both productivity and product quality. We own interlocking pipe joining system technologies (Permalok&#xae;) that provide an alternate joint solution used for connecting steel pipes. In addition, we are licensed to manufacture a conventional reinforced concrete pipe with a high-density polyethylene (&#x201c;HDPE&#x201d;) composite liner to protect concrete pipe from corrosion, and a lined manhole system, which integrates a precast concrete monolithic base with a plastic liner that is chemically resistant to raw sewage.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">To stay current with technological developments in the United States and abroad, we participate in trade shows, industry associations, research projects, and vendor trials of new products. Our staff includes some of the most tenured and experienced pipe manufacturing professionals in the nation.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Quality Assurance.</b></i> We have quality management systems in place that assure we are consistently providing products that meet or exceed customer and applicable regulatory requirements. All of our steel pipe manufacturing facilities&#x2019; quality management systems in the United States and Mexico are registered under a multi-site registration by the International Organization for Standardization (&#x201c;ISO&#x201d;). In addition to the ISO qualification, we are certified for specific steel pipe products or operations by the American Petroleum Institute. All of our steel pipe water transmission manufacturing facilities are certified by NSF International for cement lining. We are certified for specific precast and reinforced concrete products or operations by the National Precast Concrete Association and the National Ready Mixed Concrete Association. We also follow and make products to the following standards and specifications: American Institute of Steel Construction, American Society of Mechanical Engineers, American Welding Society, Caltrans, American Water Works Association, ASTM International, American Association of State Highway and Transportation Officials, and the ASCE. All of our steel pipe nondestructive evaluation technicians are qualified and certified to the guidelines of the American Society for Nondestructive Testing.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       5
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our quality assurance/quality control department is responsible for monitoring and measuring the characteristics of our products. Inspection capabilities include, but are not limited to, visual, dimensional, liquid penetrant, magnetic particle, hydrostatic, ultrasonic, conventional, computed and real-time x-ray/radioscopic, base material tensile, yield and elongation, sand sieve analysis, coal-tar penetration, concrete compression, lining and coating dry film thickness, adhesion, concrete absorption, guided bend, charpy impact, hardness, metallurgical examinations, chemical analysis, spectrographic analysis, and finished product final inspection. Our products are&#xa0;not released for customer shipment until there is verification that all requirements have been met.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Product Liability.</b></i> The manufacturing and use of our products involve a variety of risks. Certain losses may result, or be alleged to result, from defects in our products, thereby subjecting us to claims for damages including consequential damages. We warrant our products to be free of certain defects for one year. We maintain insurance coverage against potential product liability claims in the amount of $51&#xa0;million, which we believe to be adequate. Historically, product liability claims against us have not been material. However, there can be no assurance that product liability claims exceeding our insurance coverage will not be experienced in the future or that we will be able to maintain such insurance with adequate coverage.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Product Development</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our product development efforts focus on innovative solutions for water infrastructure. We continually strive to improve existing products as well as develop new products to satisfy consumer needs, expand revenue opportunities, maintain or extend competitive advantages, increase market share, and reduce production costs.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In October 2020, we introduced our new Perfect Pipe and Perfect Lined Manhole Systems, which are constructed of reinforced concrete pipe lined with either a HDPE or plastic lining system that improves hydraulics. The smooth internal surface provides optimal flow compared to conventional concrete. Additionally, the super-strong integrated structure eliminates pipe deflection potential and minimizes the risk of long-term flow restriction. Together, these innovative products offer a lined system that can connect to any municipal wastewater system and elongates the system's life.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Also in 2020, we obtained a patent for our Permalok&#xae; PR joint, created specifically for pipe ramming. We teamed with pipe ramming contractors and equipment manufacturers to address the concerns of energy transfer loss during ramming a mechanical joint, which typically resulted in a jacking limitation of less than 200&#xa0;linear feet depending on soil conditions. The Permalok&#xae; PR joint utilizes a proprietary negative interference fit connection to capitalize on the mechanical properties of the material to reduce energy transfer loss during ramming operations. The result is longer drives without welding, enabling teams to complete pipe ram projects faster than ever.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Marketing</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our steel pipe manufacturing facility locations in Oregon, California, Texas, West Virginia, Missouri, and Mexico allow us to efficiently serve customers throughout North America. The primary customers for our water infrastructure steel pipe products are installation contractors for projects funded by public water agencies. Our marketing strategy emphasizes early identification of potential water projects, promotion of specifications consistent with our capabilities and products, and close contact with the project designers and owners throughout the design phase. Our in-house sales force is comprised of sales representatives, engineers, and support personnel who work closely with public water agencies, contractors, and engineering firms, often years in advance of projects being bid. These relationships allow us to identify and evaluate planned projects at early stages, and pursue these projects by offering technical support and resources. After an agency completes a design, they publicize the upcoming bid for a water transmission project. We then obtain detailed plans and develop our estimate for the pipe portion of the project. We typically bid to installation contractors who include our bid in their proposals to public water agencies. A public water agency generally awards the entire project to the contractor with the lowest responsive bid.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our three precast and reinforced concrete product manufacturing facilities in Utah allow us to efficiently serve customers throughout the Intermountain West region. The primary customers for our water infrastructure precast and reinforced concrete products are installation contractors for various government, residential, and non-residential projects. Our marketing strategy emphasizes our product quality and variety of offerings, competitive pricing, customer service, and technical expertise. Our in-house sales force is comprised of sales representatives, engineers, and support personnel who work closely with the customers to find the right product or solution for their specific need.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       6
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Competition</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Most water infrastructure projects are competitively bid and price competition is vigorous. Price competition may reduce the gross margin on sales, which may adversely affect overall profitability. Other competitive factors include timely delivery, ability to meet customized specifications, and high freight costs which may limit the ability of manufacturers located in other market areas to compete with us. With water infrastructure steel pipe manufacturing facilities in Oregon, California, Texas, West Virginia, Missouri, and Mexico, we believe we can more effectively compete throughout North America. Our primary competitors in the western United States and southwestern Canada are Imperial Pipe and West Coast Pipe. East of the Rocky Mountains, our primary competitors are Thompson Pipe Group, American SpiralWeld Pipe, and Mid America Pipe Fabricating&#xa0;&amp; Supply,&#xa0;LLC. Our three precast and reinforced concrete product manufacturing facilities in Utah have several competitors which are primarily other precast concrete manufacturers in the Intermountain West region of the United States.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">No assurance can be given that new or existing competitors will not build new facilities or expand capacity within our market areas. In 2019, a competitor broke ground on a new spiral welded steel pipe plant in Texas that is expected to be operational in 2021. New or expanded facilities or new competitors could have a material adverse effect on our ability to capture market share and maintain product pricing.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Raw Materials and Supplies</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The main raw component in our steel pipe manufacturing process is steel. We have historically purchased hot rolled and galvanized steel coil from both domestic and foreign steel mills. Our suppliers include ArcelorMittal USA&#xa0;LLC, Big River Steel, Nucor Corporation, Steel Dynamics,&#xa0;Inc., Altos Hornos de M&#xe9;xico S.A.B de C.V., and SSAB. Steel is normally purchased after project award. Purchased steel represents a substantial portion of our cost of sales. The steel industry is highly cyclical in nature and steel prices fluctuate significantly, influenced by numerous factors beyond our control, including general economic conditions, availability of raw materials, energy costs, import duties, other trade restrictions, and currency exchange rates. The main raw components in our precast and reinforced concrete products are cement and aggregate, which are widely available commodities. When possible, we source these raw materials from suppliers near our facilities. We also rely on certain suppliers of coating materials, lining materials, and certain custom fabricated items.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have at least two suppliers for most of our raw materials. We believe our relationships with our suppliers are positive and have no indication that we will experience shortages of raw materials or components essential to our production processes or that we will be forced to seek alternative sources of supply. Any shortages of raw materials may result in production delays and costs, which could have a material adverse effect on our financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Seasonality</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our operations can be affected by seasonal variations and our results tend to be stronger in the second and third quarters of each year due to typically milder weather in the regions in which we operate. We are more likely to be impacted by weather extremes, such as excessive rain, hurricanes, snow and ice, or frigid temperatures, which may cause temporary, short-term anomalies in our operational performance in certain localized geographic regions. However, these impacts usually have not been material to our operations as a whole. See Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; of this 2020 Form&#xa0;10-K for further discussion.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Government Regulations</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We are subject to various environmental, health, and employee safety laws and regulations. We believe we are in material compliance with these laws and regulations and do not currently believe that future compliance with such laws and regulations will have a material adverse effect on our capital expenditures, earnings, or competitive position. Nevertheless, we cannot guarantee that, in the future, we will not incur additional costs for compliance or that such costs will not be material.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       7
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In particular, we are subject to federal, state, local, and foreign environmental regulations, violations of which could lead to fines, penalties, other civil sanctions, or criminal sanctions. These environmental laws and regulations govern emissions to air; discharges to water; and the generation, handling, storage, transportation, treatment, and disposal of waste materials. We operate under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. We are subject to environmental laws requiring the investigation and cleanup of environmental contamination at properties we presently own or operate and at third-party disposal or treatment facilities to which these sites send or arrange to send hazardous waste. For example, we have been identified as a potentially responsible party at the Portland Harbor Superfund Site discussed in Note&#xa0;14 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K. Estimating liabilities for environmental investigations and cleanup is complex and dependent upon a number of factors beyond our control which may change dramatically. We have no reserves for environmental investigation or cleanup, and we believe this is appropriate based on current information; however, we cannot provide assurance that our future environmental investigation and cleanup costs and liabilities will not result in a material expense.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Human Capital Resources</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Employees.</b></i> As of December&#xa0;31, 2020, we had 956&#xa0;employees, the overwhelming majority of which were full-time. Approximately&#xa0;71% of our workforce is employed on an hourly basis, while 29% is salaried. Approximately&#xa0;7% of our employees are subject to a collective bargaining agreement with a single labor union. We consider our relations with our employees and the labor union to be good.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We offer a wide array of company-paid benefits to our employees both in the United States and Mexico. Benefits may vary between countries due to customary local practices and statutory requirements; however, we believe that they are competitive relative to others in our industry.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Culture.</b></i> Our key values are captured in the acronym ACT, which stands for Accountability, Commitment, and Teamwork, which we seek to demonstrate in our daily actions.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Health and Safety.</b></i> Our goal is to send each employee home safe at the end of the day. As such, safety is at the central core of our culture, and is infused at every level of our organization. More than just policy and procedure, our safety program gives equal focus to the human side of safety, integrating coaching and mentoring efforts with compliance-driven approaches. By instilling a deep commitment to safety that reaches from our CEO to an apprentice on the floor, we have achieved industry-leading safety performance. Over the last four years, our average total recordable incident rate was 2.43%&#xa0;and our average days away rate was 0.60%, calculated in accordance with the Occupational Safety and Health Administration&#x2019;s record keeping requirements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As a manufacturer, we work hard to eliminate hazards associated with high-risk work and have measures in place that include programs for fall protection, heavy equipment operation, and lockout/tagout. We also focus on personal safety issues, such as complacency and fatigue. We seek to keep our employees healthy during the COVID&#x2011;19 pandemic by taking proactive and precautionary steps to ensure the safety of our employees including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Each of our plants utilize various interactions to achieve this performance, from a toolbox meeting to cover the day&#x2019;s work and any particular safety concern, to monthly Safety Plan Meetings, &#x2018;No Days Away&#x2019; Safety Awards, and our employee-favorite, Safety Day. Each year, a plant may close for one full day to cover safety training and updates. Outside vendors demonstrate the latest safety procedures and equipment in a hands-on fun atmosphere.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Diversity and Inclusion.</b></i> Diversity and inclusion are integral to our employee experience, and we are proud of our diverse workforce. Companies that are diverse in age, gender identity, race, sexual orientation, physical or mental ability, ethnicity, and perspective are shown to be more resilient. We believe that diversity and inclusion are important in building the most effective, high performing teams as part of our ACT culture. As of December&#xa0;31, 2020, 47% of our employees self-identified as belonging to one or more of the following racial/ethnic groups: American Indian or Alaskan Native, African American/Black, Asian, Hispanic or Latino, and Native Hawaiian or other Pacific Islander. As of December&#xa0;31, 2020, 10% of our employees self-identified as female.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our goal is to build a skilled and strong workforce that is not only diverse in race and ethnicity, but also diverse in age, gender identity, sexual orientation, physical or mental ability, and perspective. Our Affirmative Action Program strives to hire, recruit, train, and promote employees in job classifications without regard to race, color, sex, sexual orientation, gender identity, religion, national origin, disability, or veteran&#x2019;s status. To support these efforts, the Affirmative Action Plans for our facilities in the United States are reviewed annually by a third party consultant, establishing annual hiring goals for women, minorities, veterans, and individuals with disabilities.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       8
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Ethics and Compliance.</b></i> We take pride in the high standards of conduct that identifies us as a company. We have controls in place relating to compliance with our Code of Business Conduct and Ethics (&#x201c;Code&#x201d;), including a requirement for employees to review and understand the requirements of our Code, as well as an established whistleblower hotline and related procedures.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We conduct training on our Code upon hire, and in regular intervals during the employee&#x2019;s life cycle with us. The most recent ethics training for all salaried employees was conducted in the fourth quarter of 2019.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Information </b><b>A</b><b>bout </b><b>O</b><b>ur </b><b>Executive Officers</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Information about our executive officers is set forth under the caption &#x201c;Directors, Executive Officers, Promoters and Control Persons&#x201d; in Part&#xa0;III&#xa0;&#x2014; Item&#xa0;10.&#xa0;&#x201c;Directors, Executive Officers and Corporate Governance&#x201d; of this 2020 Form&#xa0;10-K and is incorporated herein by reference.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Available Information</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our Internet website address is www.nwpipe.com. Our Annual Report on Form&#xa0;10-K, Quarterly Reports on Form&#xa0;10-Q, Current Reports on Form&#xa0;8-K, and amendments to those reports filed or furnished pursuant to Section&#xa0;13(a) or 15(d) of the Exchange Act are available free of charge through our website as soon as reasonably practicable after we electronically file such material with, or furnish it to, the SEC. All statements made in any of our securities filings, including all forward-looking statements or information, are made as of the date of the document in which the statement is included, and we do not assume or undertake any obligation to update any of those statements or documents unless we are required to do so by law. Our website and the information contained therein or connected thereto are not incorporated into this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Additionally, the SEC maintains an Internet site that contains reports, proxy and information statements, and other information regarding issuers that file electronically with the SEC at www.sec.gov.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item1a" title="item1a" href="#"></a>Item&#xa0;1A.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Risk Factors</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>You should carefully consider the following factors, together with all the other information included in this 20</i><i>20</i><i> Form&#xa0;10</i><i>-</i><i>K, in evaluating our company and our business. If any of the following risks actually occur, our business, financial condition, results of operations, or cash flows could be materially and adversely affected, and the value of our stock could decline. The risks and uncertainties described below are those that we currently believe may materially affect our company. Additional risks and uncertainties not presently known to us or that we currently deem immaterial also may impair our business operations. As such, you should not consider this list to be a complete statement of all potential risks or uncertainties.</i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Risks Related to Our Business</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Project delays in public water transmission projects could adversely affect our business. </b>The public water agencies constructing water transmission projects generally announce the projects well in advance of the bidding and construction process. It is not unusual for projects to be delayed and rescheduled. Projects are delayed and rescheduled for a number of reasons, including changes in project priorities, difficulties in complying with environmental and other government regulations, changes in ability to obtain adequate project funding, and additional time required to acquire rights-of-way or property rights. Delays in public water transmission projects may occur with insufficient notice to allow us to replace those projects in our manufacturing schedules. As a result, our business, financial position, results of operations, or cash flows may be adversely affected by unplanned downtime.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>A downturn in government spending related to public water transmission projects could adversely affect our business. </b>Our business is primarily dependent upon spending on public water transmission projects, including water infrastructure upgrades, repairs, and replacement and new water infrastructure spending, which in turn depends on, among other things:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">the need for new or replacement infrastructure;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">the priorities placed on various projects by governmental entities;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">federal, state, and local government spending levels, including budgetary constraints related to capital projects and the ability to obtain financing; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">the ability of governmental entities to obtain environmental approvals, right-of-way permits, and other required approvals and permits.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       9
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Decreases in the number of, or government funding of, public water transmission projects could adversely affect our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We face risks in connection with the integration of Geneva and future potential acquisitions and divestitures. </b>Acquiring businesses that expand and/or complement our operations has been an important element of our business strategy, and we continue to evaluate potential acquisitions that may expand and/or complement our business. We may not be able to successfully identify attractive acquisition candidates or negotiate favorable terms in the future. Furthermore, our ability to effectively integrate any future acquisitions will depend on, among other things, the adequacy of our implementation plans, the ability of our management to oversee and operate effectively the combined operations, and our ability to achieve desired operational efficiencies. Acquired businesses may have liabilities, adverse operating issues, or other matters of concern arise following the acquisition that we fail to discover through due diligence prior to the acquisition. Further, our acquisition targets may not have as robust internal controls over financial reporting as would be expected of a public company. Acquisitions may also result in the recording of goodwill and other intangible assets that are subject to potential impairment in the future that could harm our financial results. We may also consider other alternatives for our business in order to strategically position our business and continue to compete in our markets, which may include joint ventures and/or divestitures. Our failure to successfully integrate the operations of any businesses that we may acquire in the future or our inability to attract a business partner in which to enter into a joint venture or a buyer willing to purchase our assets may adversely affect our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We acquired Geneva on January&#xa0;31, 2020. The success of this acquisition depends, in part, on our ability to successfully integrate this business with our current operations and to realize the anticipated benefits, including synergies, from the acquisition on a timely basis. It may take longer than expected to realize these anticipated benefits and they may ultimately be smaller than we expect. There are a number of challenges and risks involved in our ability to successfully integrate Geneva with our current business and to realize the anticipated benefits of this acquisition, including all of the risks identified in the previous paragraph. Any of these factors could have a material adverse effect on our business, financial condition, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our business faces an overcapacity situation due to recent capacity expansions as well as the potential for increased competition from substitute products from manufacturers of concrete pressure pipe, ductile iron, polyvinyl chloride (&#x201c;PVC&#x201d;), and high</b><b>-</b><b>density polyethylene pipe. </b>Orders in our business are competitively bid and price competition can be vigorous. In a market that already has overcapacity issues, recent increases in capacity have negatively affected our sales, gross margins, and overall profitability. Other competitive factors include timely delivery, ability to meet customized specifications, and high freight costs. Although our manufacturing facilities in Oregon, California, Texas, West Virginia, Utah, Missouri, and Mexico allow us to compete throughout North America, we cannot assure you that new or existing competitors will not establish new facilities or expand capacity further within our market areas. In 2019, a competitor broke ground on a new spiral welded steel pipe plant in Texas that is expected to be operational in 2021. New or expanded facilities or new competitors could have a material adverse effect on our market share, product pricing, sales, gross margins, and overall profitability in our business.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Water transmission pipe is manufactured generally from steel, concrete, ductile iron, PVC, or HDPE. Each pipe material has advantages and disadvantages. Steel and concrete are more common materials for larger-diameter water transmission pipelines because ductile iron pipe generally is limited in diameter due to the manufacturing process. The public agencies and engineers who determine the specifications for water transmission projects analyze these pipe materials for suitability for each project. Individual project circumstances normally dictate the preferred material. If we experience cost increases in raw materials, labor, and overhead specific to our industry or the location of our facilities, while competing products or companies do not experience similar changes, we could experience an adverse change in the demand, price, and profitability of our products, which could have a material adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We have a foreign operation which exposes us to the risks of doing business abroad. </b>Our facility in San Luis R&#xed;o Colorado, Mexico primarily exports products to the United States. We may operate in additional countries in the future. Any material changes in the quotas, regulations, tariffs, or duties on imports imposed by the United States government and our agencies, or on exports imposed by these foreign governments and their agencies could adversely affect our foreign operations.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We also sell some of our products internationally. Our foreign activities are also subject to various other risks of doing business in a foreign country, including:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">currency fluctuations;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">the imposition of duties, tariffs, and other trade barriers;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">transportation delays and interruptions;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       10
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">political, social, and economic instability and disruptions;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">government embargoes or foreign trade restrictions;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">import and export controls;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">labor unrest and current and changing regulatory environments;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">limitations on our ability to enforce legal rights and remedies; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">potentially adverse tax consequences.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">No assurance can be given that our operations may not be adversely affected in the future. Any of these events could have an adverse effect on our operations in the future by reducing the demand for our products and services, decreasing the prices at which we can sell our products, or increasing costs such that there could be an adverse effect on our business, financial position, results of operations, or cash flows. We cannot assure you that we will continue to operate in compliance with applicable customs, currency exchange control regulations, transfer pricing regulations, or any other laws or regulations to which we may be subject, or that any such regulations or laws will not be modified. Any failure by us to comply with any such applicable regulations or laws, or any changes in any such regulations or laws could have a material adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Fluctuations in steel prices and availability may affect our future results of operations. </b>Purchased steel represents a substantial portion of our cost of sales. The steel industry is highly cyclical in nature, and at times, pricing can be highly volatile due to a number of factors beyond our control, including general economic conditions, import duties, other trade restrictions, and currency exchange rates. Over the past three years, steel prices have fluctuated significantly. Our average cost for a ton of steel was approximately&#xa0;$655&#xa0;per ton in 2020, $803&#xa0;per ton in 2019, and $818&#xa0;per ton in 2018. In 2020, our monthly average steel purchasing costs ranged from a high of approximately&#xa0;$735&#xa0;per ton to a low of approximately&#xa0;$601&#xa0;per ton. This volatility can significantly affect our gross profit.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Although we seek to recover increases in steel prices through price increases in our products, we have not always been successful. Any increase in steel prices that is not offset by an increase in our prices could have an adverse effect on our business, financial position, results of operations, or cash flows. In addition, if we are unable to acquire timely steel supplies, we may need to decline bid and order opportunities, which could also have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>The success of our business is affected by general economic conditions, and our business may be adversely affected by an economic slowdown or recession. </b>Periods of economic slowdown or recession in the United States, or the public perception that one may occur, have and could further decrease the demand for our products, affect the price of our products, and adversely impact our business. We have been impacted in the past by the general slowing of the economy, and the economic slowdown has had an adverse impact on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We currently conduct a significant portion of our precast and reinforced concrete products business in Utah, which we estimate represented approximately 15% of our net sales for the year ended December&#xa0;31, 2020. Local economic conditions depend on a variety of factors, including national economic conditions, local and state budgets, infrastructure spending, and the impact of federal cutbacks. Any decrease in construction activity in Utah could have a material adverse effect on our business, financial condition, and results of operations.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our quarterly results of operations are subject to significant fluctuation. </b>Our net sales and operating results may fluctuate significantly from quarter to quarter due to a number of factors, including:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">the commencement, completion, or termination of contracts during any particular quarter;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">unplanned down time due to project delays or mechanical failure;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">underutilized capacity or factory productivity;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       11
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">adverse weather conditions;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">fluctuations in the cost of steel and other raw materials; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">competitive pressures.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Results of operations in any period are not indicative of results for any future period, and comparisons between any two periods may not be meaningful.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Operating problems in our business could adversely affect our business, financial position, results of operations, or cash flows. </b>Our manufacturing operations are subject to typical hazards and risks relating to the manufacture of similar products such as:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">explosions, fires, inclement weather, and natural disasters;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">mechanical failure;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">unscheduled downtime;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">labor difficulties;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">loss of process control and quality;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">disruptions to supply;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">raw materials quality defects;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">service provider delays or failures;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">transportation delays or failures;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">an inability to obtain or maintain required licenses or permits; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">environmental hazards such as chemical spills, discharges, or releases of toxic or hazardous substances or gases into the environment or workplace.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The occurrence of any of these operating problems at our facilities may have a material adverse effect on the productivity and profitability of a particular manufacturing facility or on our operations as a whole, during and after the period of these operating difficulties. For example, as discussed in Note&#xa0;14 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K, on April&#xa0;21, 2019, there was an accidental fire at our Saginaw, Texas facility which resulted in damage to the coatings building. There were no injuries, but the ability to coat at this facility was impaired while we repaired the damage. The operating problems listed above may also cause personal injury and loss of life, severe damage to or destruction of property and equipment, and environmental damage. In addition, individuals could seek damages for alleged personal injury or property damage. Furthermore, we could be subject to present and future claims with respect to workplace injury, exposure to hazardous materials, workers&#x2019; compensation, and other matters. Although we maintain property and casualty insurance of the types and in the amounts that we believe are customary for our industries, we cannot assure you that our insurance coverage will be adequate for liability that may be ultimately incurred or that such coverage will continue to be available to us on commercially reasonable terms. Any claims that result in liability exceeding our insurance coverage could have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our recognition of revenue over time includes estimates. </b>Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses, and is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Estimated total costs of each contract are reviewed on a monthly basis by project management and operations personnel for all active projects. All cost revisions that result in a material change in gross profit are reviewed by senior management personnel.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       12
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Significant judgment is required in estimating total costs and measuring the progress of project completion, as well as whether a loss is expected to be incurred on the contract. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements may result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Due to the variability of events affecting our estimates which have a material impact on our contract accounting, actual results could differ from those estimates, which could adversely affect our financial position, results of operations, or cash flows.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our backlog is subject to reduction and cancelation. </b>Backlog, which represents the balance of remaining performance obligations under signed contracts for water infrastructure steel pipe products for which revenue is recognized over time, was approximately&#xa0;$167&#xa0;million as of December&#xa0;31, 2020. Our backlog is subject to fluctuations; moreover, cancelations of purchase orders, change orders on contracts, or reductions of product quantities could materially reduce our backlog and, consequently, future revenues. Our failure to replace canceled or reduced backlog could result in lower revenues, which could adversely affect our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We are subject to stringent environmental, health, and safety laws, which may require us to incur substantial compliance and remediation costs, thereby reducing our profits. </b>We are subject to many federal, state, local, and foreign environmental, health, and safety laws and regulations, particularly with respect to the use, handling, treatment, storage, discharge, and disposal of substances and hazardous wastes used or generated in our manufacturing processes. Compliance with these laws and regulations is a significant factor in our business. We have incurred, and expect to continue to incur, significant expenditures to comply with applicable environmental laws and regulations. Our failure to comply with applicable environmental laws and regulations and permit requirements could result in civil or criminal fines or penalties or enforcement actions, including regulatory or judicial orders enjoining or curtailing operations or requiring corrective measures, installation of pollution control equipment, or remedial actions.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We are currently, and may in the future be, required to incur costs relating to the environmental assessment or environmental remediation of our property, and for addressing environmental conditions, including, but not limited to, the issues associated with our Portland, Oregon facility as discussed in Note&#xa0;14 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K. Some environmental laws and regulations impose liability and responsibility on present and former owners, operators, or users of facilities and sites for contamination at such facilities and sites without regard to causation or knowledge of contamination. Consequently, we cannot assure you that existing or future circumstances, the development of new facts, or the failure of third parties to address contamination at current or former facilities or properties will not require significant expenditures by us.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We expect to continue to be subject to increasingly stringent environmental, health, and safety laws and regulations. It is difficult to predict the future interpretation and development of environmental, health, and safety laws and regulations or their impact on our future earnings and operations. We anticipate that compliance with these laws and regulations will continue to require capital expenditures and operating costs. Any increase in these costs, or unanticipated liabilities arising, for example, out of discovery of previously unknown conditions or more aggressive enforcement actions, could adversely affect our results of operations, and there is no assurance that they will not have a material adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We may be subject to claims for damages for defective products, which could adversely affect our business, financial position, results of operations, or cash flows. </b>We warrant our products to be free of certain defects. We have, from time to time, had claims alleging defects in our products. We cannot assure you that we will not experience material product liability losses in the future or that we will not incur significant costs to defend such claims. While we currently have product liability insurance, we cannot assure you that our product liability insurance coverage will be adequate for liabilities that may be incurred in the future or that such coverage will continue to be available to us on commercially reasonable terms. Any claims relating to defective products that result in liabilities exceeding our insurance coverage could have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We may not be able to recover costs and damages from vendors that supply defective materials. </b>We may receive defective materials from our vendors that are incorporated into our products during the manufacturing process. The cost to repair, remake, or replace defective products could be greater than the amount that can be recovered from the vendor. Such excess costs could have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       13
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our information technology systems can be negatively affected by cybersecurity threats.</b><i><b> </b></i>Increased global information technology security requirements, vulnerabilities, threats, and a rise in sophisticated and targeted computer crime pose a risk to the security of our systems, networks, and the confidentiality, availability, and integrity of our data. Despite our efforts to protect sensitive information and confidential and personal data, our facilities and systems and those of our third-party service providers may be vulnerable to security breaches. This could lead to disclosure, modification, or destruction of proprietary, employee, and other key information and operational disruptions, which in turn could adversely affect our reputation, competitiveness, and results of operations. To the extent that any disruption or security breach results in a loss or damage to our data, or an inappropriate disclosure of confidential or protected personal information, it could cause significant damage to our reputation, affect our relationships with our customers, suppliers, and employees, lead to claims against us, and ultimately harm our business. Additionally, we may be required to incur significant costs to protect against damage caused by these disruptions or security breaches in the future. Any of the foregoing factors could have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our business may be adversely impacted by work stoppages, staffing shortages, and other labor matters.</b> As of December&#xa0;31, 2020, we had approximately&#xa0;63&#xa0;employees that were represented by a single labor union. Although we believe that our relations with our employees and the&#xa0;labor union are good, no assurances can be made that we will not experience conflicts with the labor union, other groups representing employees, or our employees in general, especially in the context of any future negotiations with the labor union. We can also make no assurance that future negotiations with the labor union will not result in a significant increase in the cost of labor.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Additionally, the employees of some of our customers are unionized. Any strikes, work stoppages, or other labor matters experienced by our customers may impact our ability to work on projects and, as a result, have an adverse effect on our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We may be unable to develop or successfully market new products or our products might not obtain necessary approvals or achieve market acceptance, which could adversely affect our growth. </b>We will continue to actively seek to develop new products and to expand our existing products into new markets, but we cannot assure you that we will be successful in these efforts. If we are unsuccessful in developing and marketing new products, expanding into new markets, or we do not obtain or maintain requisite approvals for our products, the demand for our products could be adversely affected, which could adversely affect our business, financial position, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>The COVID-19 pandemic may have an adverse impact on our business, results of operations, financial position, and cash flows. </b>We continue to monitor the impact of the COVID-19 pandemic on all aspects of our business, including how it will impact our employees, customers, supply chain, and distribution network. These impacts could include, without limitation, disruptions in or closures of our manufacturing operations or those of our customers and suppliers, disruptions within our supply chain or distribution channels, limitations on our employees&#x2019; ability to work and travel, potential financial difficulties of customers and suppliers, significant changes in economic or political conditions impacting project owners&#x2019; ability to fund future projects, and related financial and commodity volatility, including volatility in raw material and other input costs.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have taken proactive and precautionary steps to ensure the safety of our employees, customers, and suppliers, including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees. These measures may reduce the ability of our employees to operate at the same level of productivity and efficiency. In early April 2020, we were ordered to close our water infrastructure manufacturing facility in San Luis R&#xed;o Colorado, Mexico as a result of mandates made by Mexican authorities related to COVID-19. In early June 2020, the Mexican authorities determined our SLRC facility was essential, and allowed weekly increases to our workforce. By July 2020, operations at our SLRC facility were fully restored.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">While the COVID-19 pandemic has not had a material adverse effect on our reported results for the year ended December&#xa0;31, 2020, we are unable to predict the ultimate impact that the COVID-19 pandemic may have on our business, future results of operations, financial position, or cash flows. The severity of impacts on the global economy and the continued disruptions to and volatility in the financial markets remain unknown. The extent to which our operations may be impacted by the COVID-19 pandemic will depend largely on future developments, which are highly uncertain and cannot be accurately predicted, including new information&#xa0;which may emerge concerning the severity of the pandemic and actions by government authorities to contain the pandemic or treat its impact.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The impact of the COVID-19 pandemic may also exacerbate other risks discussed in Part&#xa0;I&#xa0;&#x2013; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; in this 2020 Form&#xa0;10-K, any of which could have a material effect on us. This situation is changing rapidly and additional impacts may arise that we are not aware of currently.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       14
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Risks Related to Our Financial Condition</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>We will need to substantially increase working capital if market conditions and customer order levels improve.</b> If market conditions and customer order levels were to dramatically increase, we will have to increase our working capital substantially, as it takes several months for new orders to be translated into cash receipts. In general, revolving loan borrowings and letters of credit under the Credit Agreement with Wells Fargo Bank, N.A. (&#x201c;Wells Fargo&#x201d;) dated October&#xa0;25, 2018 (&#x201c;Credit Agreement&#x201d;), as amended on January&#xa0;31, 2020 by the Consent and Amendment No.&#xa0;1 to Credit Agreement with Wells Fargo (collectively the &#x201c;Amended Credit Agreement&#x201d;), are limited to the aggregate amount of $74&#xa0;million, subject to a borrowing base. As of December&#xa0;31, 2020, we had no outstanding revolving loan borrowings under the Amended Credit Agreement and additional revolving loan borrowing capacity of approximately&#xa0;$53&#xa0;million. We may not have sufficient availability under the Amended Credit Agreement to borrow the amounts we need, and other opportunities to borrow additional funds or raise capital in the equity markets may be limited or nonexistent. A shortage in the availability of working capital could have a material adverse effect on our business, financial condition, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our debt obligations could have a material adverse effect on our business, financial condition, results of operations, or cash flows. </b>We have financed our operations through cash flows from operations, available borrowings, and other financing arrangements. As of December&#xa0;31, 2020, we had $13.8&#xa0;million of outstanding long-term debt, no outstanding revolving loan borrowings, $1.7&#xa0;million of finance lease liabilities, and $30.1&#xa0;million of operating lease liabilities. We could incur additional revolving loan borrowings under the Amended Credit Agreement in the future to finance increases in working capital, finance mergers, acquisitions and capital expenditures, fund negative operating cash flows, or for other corporate purposes. These borrowings could become significant in the future.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our current and future debt and debt service obligations could:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">limit our ability to obtain additional financing for working capital or other purposes in the future;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">reduce the amount of funds available to finance our operations, capital expenditures, and other activities;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">increase our vulnerability to economic downturns, illiquid capital markets, and adverse industry conditions;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">limit our flexibility in responding to changing business and economic conditions, including increased competition;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">place us at a disadvantage when compared to our competitors that have less debt; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">with respect to our borrowings that bear interest at variable rates, cause us to be vulnerable to increases in interest rates.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our ability to make scheduled payments on our current and future debt will depend on our future operating performance and cash flows, which are subject to prevailing economic conditions, prevailing interest rate levels, and other financial, competitive, and business factors, many of which are beyond our control. Our inability to make scheduled payments on our debt or any of the foregoing factors could have a material adverse effect on our business, financial condition, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In addition, under the Amended Credit Agreement, our variable rate indebtedness uses daily three month London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) as a benchmark for establishing the rate. The United Kingdom&#x2019;s Financial Conduct Authority, which regulates LIBOR, has announced that it intends to stop publishing daily three month LIBOR rates on June 30, 2023. In the United States, the Alternative Reference Rates Committee has proposed the Secured Overnight Financing Rate (&#x201c;SOFR&#x201d;) as an alternative to LIBOR. The Amended Credit Agreement provides a mechanism for determining an alternative benchmark rate to LIBOR, which may include SOFR. It is not presently known whether SOFR or any other alternative reference rates that have been proposed will attain market acceptance as replacements of LIBOR. As such, the transition to alternatives to LIBOR could be modestly disruptive to the credit markets. While we do not believe that the impact would be material to us, the consequences of these developments with respect to LIBOR cannot be entirely predicted and span multiple future periods, and could result in an increase in the cost of our variable rate debt which could have a material adverse effect on our financial position and results of operations.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       15
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Disruptions in the financial markets and a general economic slowdown could cause us to be unable to obtain financing and expose us to risks related to the overall macro-economic environment, which could have a material adverse effect on our business, financial condition, results of operations, or cash flows. </b>The United States equity and credit markets have experienced significant price volatility, dislocations, and liquidity disruptions, which have caused market prices of many equities to fluctuate substantially and the spreads on prospective debt financings to widen considerably. These circumstances have materially impacted liquidity in the financial markets, making terms for certain financings less attractive, and in some cases have resulted in the unavailability of financing, even for companies who are otherwise qualified to obtain financing. These events may make it less likely that we will be able to obtain additional financing and also may make it more difficult or prohibitively costly for us to raise capital through the issuance of debt or equity securities.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our failure to comply with covenants in our debt agreements could result in our indebtedness being immediately due and payable, which could have a material adverse effect on our business, financial condition, results of operations, or cash flows. </b>The agreements governing our debt include covenants that impose certain requirements with respect to our financial condition and results of operations and general business activities. These covenants place restrictions on, among other things, our ability to incur certain additional debt and to create liens or other encumbrances on assets. In addition, our obligations under the Amended Credit Agreement are secured by a security interest in certain real property owned by us and our subsidiaries and substantially all of our and our subsidiaries' other assets.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our ability to comply with the covenants under our debt instruments in the future is uncertain and will be affected by our results of operations and financial condition as well as other events and circumstances beyond our control. If market and other economic conditions deteriorate, our ability to comply with these covenants may be impaired. A failure to comply with the requirements of these covenants, if not waived or cured, could permit acceleration of the related debt. If any of our debt is accelerated, we cannot assure you that we would have sufficient assets to repay such debt or that we would be able to refinance such debt on commercially reasonable terms or at all. The acceleration of a significant portion of our current and future debt could have a material adverse effect on our business, financial condition, results of operations, or cash flows.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Risks Related to Our Internal Control Over Financial Reporting</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Material weaknesses in our internal controls could have a material adverse effect on our business.&#xa0;</b>If in the future we identify one or more material weaknesses in our internal control over financial reporting, we will be unable to assert that our internal control over financial reporting is effective. Furthermore, we cannot assure you that there will not be material weaknesses or significant deficiencies in our internal control over financial reporting in the future. Any failure to maintain internal control over financial reporting could severely inhibit our ability to accurately report our financial condition, results of operations or cash flows. If our independent registered public accounting firm determines we have a material weakness or significant deficiency in our internal control over financial reporting, we could lose investor confidence in the accuracy and completeness of our financial reports, the market price of our common stock could decline, and we could be subject to sanctions or investigations by Nasdaq, the SEC, or other regulatory authorities. Failure to remedy any material weakness in our internal control over financial reporting, or to implement or maintain other effective control systems required of public companies, could also restrict our future access to the capital markets.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Failure to implement internal controls at acquired companies could increase risk of material weaknesses.</b> The Sarbanes-Oxley Act of 2002 (&#x201c;Sarbanes-Oxley Act&#x201d;) requires our management to assess the effectiveness of the internal control over financial reporting for the companies we acquire. In order to comply with the Sarbanes-Oxley Act, we will need to implement or enhance internal control over financial reporting at any company we acquire and evaluate the internal controls. We do not conduct a formal evaluation of companies&#x2019; internal control over financial reporting prior to an acquisition. We may experience difficulties in implementing effective internal controls as part of our integration of acquisitions from private companies, as they may have limited experience complying with the Sarbanes-Oxley Act. We may be required to hire or engage additional resources and incur substantial costs to implement the necessary new internal controls should we acquire any companies. Any failure to implement required internal controls, or difficulties encountered in their implementation, could harm our operating results or increase the risk of material weaknesses in internal controls, which could, if not remediated, adversely affect our ability to report our financial condition and results of operations in a timely and accurate manner.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><br /> <b>Risks Related to Our Common Stock</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>The relatively low trading volume of our common stock may limit your ability to sell your shares. </b>Although our shares of common stock are listed on the Nasdaq Global Select Market (&#x201c;Nasdaq&#x201d;), we have historically experienced a relatively low trading volume. If we have a low trading volume in the future, holders of our shares may have difficulty selling a large number of shares of our common stock in the manner or at a price that might otherwise be attainable.</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       16
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>The market price of our common stock could be subject to significant fluctuations. </b>The market price of our common stock has experienced, and may continue to experience, significant volatility. Among the factors that could affect our stock price are:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">our operating and financial performance and prospects;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">quarterly variations in the rate of growth of our financial indicators, such as earnings per share, net income, and net sales;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">changes in revenue or earnings estimates or publication of research reports by analysts;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">loss of any member of our senior management team;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">speculation in the press or investment community;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">strategic actions by us or our competitors, such as acquisitions or restructuring;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">sales of our common stock by shareholders;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">relatively low trading volume;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">general market conditions and market expectations for our industry and the financial health of our customers; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">domestic and international economic, legal, and regulatory factors unrelated to our performance.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The stock markets in general have experienced broad fluctuations that have often been unrelated to the operating performance of particular companies. These broad market fluctuations may adversely affect the trading price of our common stock.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Certain provisions of our governing documents and Oregon law could discourage potential acquisition proposals. </b>Our articles of incorporation contain provisions that:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">classify the board of directors into three classes, each of which serves for a three-year term with one class elected each year;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">provide that directors may be removed by shareholders only for cause and only upon the affirmative vote of 75% of the outstanding shares of common stock; and</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;">&#xa0;</td>
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">permit the board of directors to issue preferred stock in one or more series, fix the number of shares constituting any such series, and determine the voting powers and all other rights and preferences of any such series, without any further vote or action by our shareholders.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In addition, we are subject to certain provisions of the Oregon Business Corporation Act that could discourage potential acquisition proposals, could deter, delay, or prevent a change in control that our shareholders consider favorable, and could depress the market value of our common stock. Additional information regarding the above described provisions of our governing documents and the Oregon Business Corporation Act is set forth in the &#x201c;Description of Securities Registered Under Section&#xa0;12 of the Securities Exchange Act of 1934&#x201d; filed as Exhibit&#xa0;4.2 to our 2019 Form&#xa0;10-K, which was filed with the SEC on March&#xa0;3, 2020.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item1b" title="item1b" href="#"></a>Item&#xa0;1B.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Unresolved Staff Comments</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">None.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       17
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item2" title="item2" href="#"></a>Item&#xa0;2.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Properties</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our facilities serve regional markets, which vary in the number and sizes of projects year-over-year. Consequently, we have excess manufacturing capacity from time to time at each of our facilities. We believe the quality and productive capacity of our facilities are sufficient to maintain our competitive position for the foreseeable future.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table provides certain information about our operating facilities as of December&#xa0;31, 2020:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Location</b></p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Manufacturing </b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Space<br /> (approx. sq. ft.)</b></p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td colspan="2" style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Property Size<br /> (approx. acres)</b></p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Property Description</b></p> </td>
    </tr>

    <tr style="background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Portland, Oregon</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px none rgb(0, 0, 0); width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px none rgb(0, 0, 0); width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">300,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px none rgb(0, 0, 0); width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">25</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 spiral mills for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">San Luis R&#xed;o Colorado, Mexico</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">285,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">105</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 spiral mills and 1 plate roll for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Adelanto, California</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">200,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">100</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">3 spiral mills and 1 plate roll for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Parkersburg, West Virginia</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">170,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">90</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 spiral mills for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Saginaw, Texas (2 facilities)</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">170,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">50</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 spiral mills for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Tracy, California</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">165,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">87</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 spiral mills for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Orem, Utah</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">150,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">20</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Manufacturing facility for concrete products</p> </td>
    </tr>

    <tr style="background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">St. Louis, Missouri</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">100,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">20</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2 plate rolls for steel products</p> </td>
    </tr>

    <tr style="background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Salt Lake City, Utah</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">58,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">20</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Manufacturing facility for concrete products</p> </td>
    </tr>

    <tr style="background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">St.&#xa0;George, Utah</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:right;">6,000</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 12%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">8</p> </td>
     <td style="vertical-align: bottom; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 35%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Manufacturing facility for concrete products</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of December&#xa0;31, 2020, we owned all of our facilities except for one of our Saginaw, Texas facilities, our Utah facilities, and our St.&#xa0;Louis, Missouri facility, which are leased. Additionally, land adjacent to our Portland, Oregon facility and our Saginaw, Texas facility used for parking and/or pipe storage is leased. Our obligations under the Amended Credit Agreement are secured by a security interest in certain of our real property. Please refer to the discussion of the Amended Credit Agreement under &#x201c;Line of Credit (Revolving Loan) and Long-Term Debt&#x201d; in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;7.&#xa0;&#x201c;Management&#x2019;s Discussion and Analysis of Financial Condition and Results of Operations&#x201d; of this 2020 Form&#xa0;10&#x2011;K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item3" title="item3" href="#"></a>Item&#xa0;3.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Legal Proceedings</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We are party to a variety of legal actions arising out of the ordinary course of business. Plaintiffs occasionally seek punitive or exemplary damages. We do not believe that such normal and routine litigation will have a material impact on our consolidated financial results. We are also involved in other kinds of legal actions, some of which assert or may assert claims or seek to impose fines, penalties, and other costs in substantial amounts. See Note&#xa0;14 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item4" title="item4" href="#"></a>Item&#xa0;4.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Mine Safety Disclosures</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Not applicable.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="part2" title="part2" href="#"></a>PART II</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b><a id="item5" title="item5" href="#"></a>Item&#xa0;5.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Market for Registrant&#x2019;s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Market Information</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our common stock is quoted on the Nasdaq under the symbol &#x201c;NWPX.&#x201d;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">There were 21 shareholders of record as of February&#xa0;22, 2021. A substantially greater number of holders of our common stock are beneficial holders, whose shares of record are held by banks, brokers, and other financial institutions. We do not intend to pay cash dividends in the foreseeable future. We have not issued any securities during the past three years that were not registered under the Securities Act.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       18
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On November&#xa0;3, 2020, our registration statement on Form&#xa0;S-3 (Registration No.&#xa0;333-249637) covering the potential future sale of up to $150&#xa0;million of our equity and/or debt securities or combinations thereof, was declared effective by the SEC. This registration statement, which replaced the registration statement on Form&#xa0;S-3 that expired on September&#xa0;15, 2020, provides another potential source of capital, in addition to other alternatives already in place. We cannot be certain that funding will be available on favorable terms or available at all. To the extent that we raise additional funds by issuing equity securities, our shareholders may experience significant dilution. As of the date of this 2020 Form&#xa0;10-K, we have not yet sold any securities under this registration statement, nor do we have an obligation to do so. Please refer to the factors discussed in Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; of this 2020 Form&#xa0;10&#x2011;K.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Stock Performance Graph</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following graph compares the performance of our common stock to the performance of the Russell 2000 Index, a weighted composite of certain peer companies (&#x201c;Peer Group&#x201d;) selected by us, and the S&amp;P Small Cap 600 Construction, Farm Machinery and Heavy Truck Index. The Peer Group is comprised of Mueller Water Products,&#xa0;Inc., Lindsay Corporation, and Aegion Corporation.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">To better align with comparable investment opportunities, we are transitioning from the self-selected Peer Group to the S&amp;P Small Cap 600 Construction, Farm Machinery and Heavy Truck Index for the year ended December&#xa0;31, 2020. Both indices are presented, in accordance with SEC rules, which require that if a company selects a different index from that used in the immediately preceding fiscal year, the company&#x2019;s stock performance must be compared against both the newly selected index and previous index in the year of change.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The comparisons in the chart below are provided in response to SEC disclosure requirements and, therefore, are not intended to forecast or be indicative of future performance of our common stock.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div style="text-align: center;">
   <img alt="graph1.jpg" src="graph1.jpg" /></div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       19
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td colspan="14" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 55%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Indexed Return</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Northwest Pipe Company</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Russell 2000 Index</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Peer<br /> Group</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>S&amp;P Small Cap</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>600 Construction,</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Farm Machinery</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>and Heavy Truck Index</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2015</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.00</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.00</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.00</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.00</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2016</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">153.89</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">121.31</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">133.80</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">136.79</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2017</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">171.05</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">139.08</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">137.99</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">183.04</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2018</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">208.13</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">123.76</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">111.75</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">130.77</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2019</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">297.68</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">155.35</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">137.85</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">179.59</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">December 31, 2020</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">252.90</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">186.36</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">151.81</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 15%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">203.14</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt;"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Securities Authorized for Issuance under Equity Compensation Plans</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information with respect to equity compensation plans is included under Part&#xa0;III&#xa0;&#x2014; Item&#xa0;12.&#xa0;&#x201c;Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item6" title="item6" href="#"></a>Item&#xa0;6.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Selected Financial Data</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We are not providing information responsive to this Item as we are choosing to voluntarily comply with the revisions to Item&#xa0;6 of Form&#xa0;10&#x2011;K contained in SEC Release No.&#xa0;33&#x2011;10890, which eliminate the disclosure requirements contained in Item&#xa0;301 of Regulation&#xa0;S&#x2011;K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item7" title="item7" href="#"></a>Item&#xa0;7.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Management&#x2019;s Discussion and Analysis of Financial Condition and Results of Operations</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following is management's discussion and analysis of certain significant factors that have affected our consolidated financial condition and results of operations during the periods included herein. This discussion should be read in conjunction with our historical Consolidated Financial Statements and Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K. This discussion contains forward-looking statements based upon current expectations that involve risks and uncertainties. Our actual results may differ materially from those anticipated in these forward-looking statements as a result of various factors, including those set forth under Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; or in other parts of this 2020 Form&#xa0;10-K. For discussion related to the results of operations and changes in financial condition for the year ended December&#xa0;31, 2019 compared to the year ended December&#xa0;31, 2018, refer to Part&#xa0;II&#xa0;&#x2014; Item&#xa0;7.&#xa0;&#x201c;Management's Discussion and Analysis of Financial Condition and Results of Operations&#xa0;&#x2014; Year Ended December&#xa0;31, 2019 Compared to Year Ended December&#xa0;31, 2018&#x201d; in our 2019 Form&#xa0;10-K, which was filed with the SEC on March&#xa0;3, 2020, and which is incorporated herein by reference.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Overview</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Northwest Pipe Company is a leading manufacturer for water related infrastructure products. In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, we produce high-quality precast and reinforced concrete products, Permalok&#xae; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and one of the largest offerings of fittings and specialized components. Our ten manufacturing facilities are strategically positioned to meet growing water and wastewater infrastructure needs. We provide solution-based products for a wide range of markets including water transmission and infrastructure, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. Our prominent position is based on a widely-recognized reputation for quality, service, and manufacturing to meet performance expectations in all categories including highly-corrosive environments. We have manufacturing facilities located in Portland, Oregon; Adelanto, California; Saginaw, Texas; Tracy, California; Parkersburg, West Virginia; Salt Lake City, Utah; Orem, Utah; St.&#xa0;George, Utah; St.&#xa0;Louis, Missouri; and San Luis R&#xed;o Colorado, Mexico.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       20
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On January&#xa0;31, 2020, we completed the acquisition of 100% of Geneva Pipe and Precast Company (fka Geneva Pipe Company,&#xa0;Inc.) for a purchase price of $49.4&#xa0;million. Geneva is a concrete pipe and precast concrete products manufacturer based in Utah. This acquisition expanded our water infrastructure product capabilities by adding additional reinforced concrete pipe capacity and a full line of precast concrete products including storm drains and manholes, catch basins, vaults, and curb inlets as well as innovative lined products that extend the life of concrete pipe and manholes for sewer applications. Operations have continued with Geneva's previous management and workforce at its three manufacturing facilities.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our water infrastructure products are sold generally to installation contractors, who include our products in their bids to federal, state, and municipal agencies, privately-owned water companies, or developers for specific projects. We believe our sales are substantially driven by spending on urban growth and new water infrastructure with a recent trend towards spending on water infrastructure replacement, repair, and upgrade. Within the total range of products, our steel pipe tends to fit larger-diameter, higher-pressure pipeline applications, while our precast concrete products mainly serve stormwater and sanitary sewer systems.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Our Current Economic Environment</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We operate our business with a long-term time horizon. Projects are often planned for many years in advance, and are sometimes part of 50-year build-out plans. Long-term demand for water infrastructure projects in the United States appears strong. However, in the near term, we expect that strained governmental and water agency budgets and financing along with increased manufacturing capacity from competition could impact the business. Fluctuating steel costs will also be a factor, as the ability to adjust our selling prices as steel costs fluctuate depends on market conditions. Purchased steel represents a substantial portion of our cost of sales, and changes in our selling prices often correlate directly to changes in steel costs.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Impact of </b></i><i><b>the </b></i><i><b>COVID-19 </b></i><i><b>P</b></i><i><b>andemic </b></i><i><b>on </b></i><i><b>O</b></i><i><b>ur Business</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">While the COVID-19 pandemic has not had a material adverse effect on our reported results for the year ended December&#xa0;31, 2020, we are unable to predict the ultimate impact that the COVID-19 pandemic may have on our business, future results of operations, financial position, or cash flows. For additional details, refer to the information set forth under the caption &#x201c;Impact of the COVID&#x2011;19 Pandemic on Our Business&#x201d; in Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1.&#xa0;&#x201c;Business&#x201d; and discussions in Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Results of Operations</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table sets forth, for the periods indicated, certain financial information regarding costs and expenses expressed in dollars (in thousands) and as a percentage of total Net sales.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, 2020</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, 2019</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, 2018</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>$</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>% of Net Sales</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>$</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>% of Net Sales</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>$</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>% of Net Sales</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom;">
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
     <td>&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">285,907</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">279,317</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">172,149</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">100.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cost of sales</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">235,388</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">82.3</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">232,133</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">83.1</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">160,053</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">93.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Gross profit</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">50,519</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">17.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">47,184</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">16.9</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">12,096</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Selling, general, and administrative expense</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">24,954</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8.8</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">18,495</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6.6</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">16,663</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9.6</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Gain on sale of facilities</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,960</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Restructuring expense</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,364</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">0.8</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating income (loss)</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">25,565</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8.9</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">28,689</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">10.3</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,971</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">20,080</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">11.6</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other income</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">953</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">0.3</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,383</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1.6</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">267</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">0.2</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Interest income</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">49</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">40</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">267</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">0.2</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Interest expense</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(933</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(0.2</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(472</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(0.2</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(583</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(0.4</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Income before income taxes</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">25,634</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">32,640</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">11.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">17,060</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9.9</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Income tax expense (benefit)</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">6,584</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2.3</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,738</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3,252</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1.9</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">19,050</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">6.7</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,902</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10.0</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,312</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">11.8</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       21
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have one operating segment, Water Infrastructure, which produces high-quality engineered steel water pipe, precast and reinforced concrete products, Permalok&#xae; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, fittings, and specialized components. These products are primarily used in water infrastructure including water transmission, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. See Note&#xa0;3 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K for information on our acquisition of Geneva in January 2020.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Year Ended December&#xa0;31, 20</b><b>20</b><b> Compared to Year Ended December&#xa0;31, 201</b><b>9</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Net sales. </b></i>Net sales increased 2.4% to $285.9&#xa0;million in 2020 compared to $279.3&#xa0;million in 2019 as the $44.2&#xa0;million contribution from our acquired Geneva operations was nearly entirely offset by the decrease in net sales&#xa0;at our legacy steel pipe facilities. The decrease at our legacy steel pipe facilities was due to a 28% decrease in tons produced resulting from changes in project timing, partially offset by a 20% increase in selling price per ton due to a change in product mix. Additionally, the pandemic-related&#xa0;shut-down of our SLRC facility negatively impacted our sales in the second quarter of 2020. Bidding activity, backlog, and production levels may vary significantly from period to period affecting sales volumes.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Gross profit. </b></i>Gross profit increased 7.1% to $50.5&#xa0;million (17.7% of net sales) in 2020 compared to $47.2&#xa0;million (16.9% of net sales) in 2019. The increase in gross profit was due to the addition of the acquired Geneva operations and improved product pricing at our legacy steel pipe facilities, partially offset by lower production volume at our legacy steel pipe facilities and amortization and other acquisition-related accounting adjustments resulting from the purchase accounting of Geneva. Additionally, as a result of the fire at our Saginaw facility in April 2019, $1.4&#xa0;million of business interruption insurance recovery (net of incremental production costs) was recorded in 2020, compared to $1.6&#xa0;million of incremental production costs (net of business interruption insurance recovery) in 2019.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Selling, general, and administrative expense. </b></i>Selling, general, and administrative expense increased 34.9% to $25.0&#xa0;million (8.8% of net sales) in 2020 compared to $18.5&#xa0;million (6.6% of net sales) in 2019. The increase in selling, general, and administrative expense was primarily due to the addition of Geneva, including $2.7&#xa0;million in higher compensation-related expense, $2.0&#xa0;million in higher acquisition-related transaction costs, and $0.9&#xa0;million in higher intangible amortization expense. In addition, we incurred $0.8&#xa0;million in higher administrative expense.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Other income.</b></i> In 2020 and 2019, we recognized gains on insurance proceeds of $1.0&#xa0;million and $1.6&#xa0;million, respectively, for property damage resulting from the fire at our Saginaw facility. In August 2019, we received $2.3&#xa0;million of proceeds related to a favorable legal settlement involving certain pipe produced at our former Houston, Texas and Bossier City, Louisiana facilities.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Income taxes. </b></i>Income tax expense was $6.6&#xa0;million in 2020 (an effective income tax rate of 25.7%) compared to $4.7&#xa0;million in 2019 (an effective income tax rate of 14.5%). The effective income tax rate for 2020 was primarily impacted by costs associated with the acquisition of Geneva that are expected to be non-deductible for tax purposes. The effective income tax rate for 2019 was primarily impacted by the estimated changes in our valuation allowance. The effective income tax rate can change significantly depending on the relationship of permanent income tax deductions and tax credits to estimated pre-tax income or loss and the changes in valuation allowances. Accordingly, the comparison of effective income tax rates between periods is not meaningful in all situations.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Liquidity and Capital Resources</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Sources and Uses of Cash</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our principal sources of liquidity generally include operating cash flows and the Amended Credit Agreement. From time to time our long-term capital needs may be met through the issuance of long-term debt or additional equity. Our principal uses of liquidity generally include capital expenditures, working capital, and debt service. Information regarding our cash flows for the years ended December&#xa0;31, 2020, 2019, and 2018 are presented in our Consolidated Statements of Cash Flows contained in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K, and are further discussed below.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As we cannot predict the duration or scope of the COVID-19 pandemic and its impact on our customers and suppliers, the potential negative financial impact to our results cannot be reasonably estimated, but could be material. We are actively managing the business to maintain cash flow and believe we have liquidity to meet our anticipated funding requirements and other near-term obligations.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of December&#xa0;31, 2020, our working capital (current assets minus current liabilities) was $146.1 million compared to $153.5&#xa0;million as of December&#xa0;31, 2019. Cash and cash equivalents totaled $37.9&#xa0;million and $31.0&#xa0;million as of December&#xa0;31, 2020 and 2019, respectively.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       22
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Fluctuations in our working capital accounts result from timing differences between production, shipment, invoicing, and collection, as well as changes in levels of production and costs of materials. We typically have a relatively large investment in working capital, as we generally pay for materials, labor, and other production costs in the initial stages of a project, while payments from our customers are generally received after finished product is delivered. A portion of our revenues are recognized over time as the manufacturing process progresses; therefore, cash receipts typically occur subsequent to when revenue is recognized and the elapsed time between when revenue is recorded and when cash is received can be significant. As such, our payment cycle is a significantly shorter interval than our collection cycle, although the effect of this difference in the cycles may vary by project, and from period to period.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of December&#xa0;31, 2020, we had $13.8&#xa0;million of outstanding long-term debt, no outstanding revolving loan borrowings, $1.7&#xa0;million of finance lease liabilities, and $30.1&#xa0;million of operating lease liabilities. For future maturities of these obligations, see Notes&#xa0;8 and 9 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Due to the uncertainty with respect to the timing of future cash flows associated with our approximately $4.4&#xa0;million in unrecognized tax benefits as of December&#xa0;31, 2020, we are unable to make reasonably reliable estimates of the period of cash settlement with the respective taxing authorities. For further information, see Note&#xa0;16 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Net Cash Provided by Operating Activities</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net cash provided by operating activities was $56.1&#xa0;million in 2020 compared to $42.9&#xa0;million in 2019. Net income, adjusted for non-cash items, generated $40.3&#xa0;million of operating cash flow in 2020 compared to $45.7&#xa0;million in 2019. The net change in working capital resulted in an increase to net cash provided by operations of $15.7&#xa0;million in 2020 compared to a decrease of $2.8&#xa0;million in 2019.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Net Cash Used in Investing Activities</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net cash used in investing activities was $61.4&#xa0;million in 2020 compared to $6.4&#xa0;million in 2019. Net cash used in investing activities in 2020 includes the acquisition of Geneva of $48.7&#xa0;million, net of cash acquired. Capital expenditures were $14.0&#xa0;million in 2020 compared to $8.6&#xa0;million in 2019. The 2019 capital expenditures associated with the rebuilding of assets lost in the April 2019 fire at our Saginaw, Texas facility were recovered through insurance proceeds of $1.4&#xa0;million in 2020 and $2.1&#xa0;million in 2019. We currently expect capital expenditures in 2021 to be approximately&#xa0;$12&#xa0;million to $15&#xa0;million primarily for standard capital replacement.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Net Cash Provided by (Used in) Financing Activities</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net cash provided by (used in) financing activities was $12.3&#xa0;million in 2020 compared to $(12.1)&#xa0;million in 2019. Net borrowings on long-term debt were $13.8&#xa0;million in 2020. There were no net borrowings (repayments) on the line of credit in 2020 compared to $(11.5)&#xa0;million in 2019.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We anticipate that our existing cash and cash equivalents, cash flows expected to be generated by operations, and amounts available under the Amended Credit Agreement will be adequate to fund our working capital, debt service, and capital expenditure requirements for at least the next twelve months. To the extent necessary, we may also satisfy capital requirements through additional bank borrowings, senior notes, term notes, subordinated debt, and finance and operating leases, if such resources are available on satisfactory terms. We have from time to time evaluated and continue to evaluate opportunities for acquisitions and expansion. Any such transactions, if consummated, may necessitate additional bank borrowings or other sources of funding. As previously discussed, we acquired Geneva in January 2020, which was funded by available cash and borrowings under the Amended Credit Agreement.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On November&#xa0;3, 2020, our registration statement on Form&#xa0;S-3 (Registration No.&#xa0;333-249637) covering the potential future sale of up to $150&#xa0;million of our equity and/or debt securities or combinations thereof, was declared effective by the SEC. This registration statement, which replaced the registration statement on Form&#xa0;S-3 that expired on September&#xa0;15, 2020, provides another potential source of capital, in addition to other alternatives already in place. We cannot be certain that funding will be available on favorable terms or available at all. To the extent that we raise additional funds by issuing equity securities, our shareholders may experience significant dilution. As of the date of this 2020 Form&#xa0;10-K, we have not yet sold any securities under this registration statement, nor do we have an obligation to do so. Please refer to the factors discussed in Part&#xa0;I&#xa0;&#x2014; Item&#xa0;1A.&#xa0;&#x201c;Risk Factors&#x201d; of this 2020 Form&#xa0;10&#x2011;K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       23
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Line of Credit&#xa0;</b></i><i><b>(Revolving Loan) and Long-Term Debt</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Amended Credit Agreement expires on October&#xa0;25, 2024 and provides for a term loan, as well as letters of credit and revolving loans in the aggregate amount of up to $74&#xa0;million, subject to a borrowing base (&#x201c;Revolver Commitment&#x201d;). As of December&#xa0;31, 2020, under the Amended Credit Agreement, we had $13.8&#xa0;million of outstanding long-term debt as a term loan, $1.6&#xa0;million of outstanding letters of credit, and no revolving loan borrowings. As of December&#xa0;31, 2020, we had additional revolving loan borrowing capacity of $53&#xa0;million. Based on our business plan and forecasts of operations, we expect to have sufficient credit availability to support our operations for at least the next twelve months.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Pursuant to the Amended Credit Agreement, on March&#xa0;31, 2020, we entered into a term loan for $15.9&#xa0;million with Wells Fargo that matures on October&#xa0;25, 2024 and bears interest at the daily three month LIBOR plus 2.0% to 2.5%. The Amended Credit Agreement also provides a mechanism for determining an alternative benchmark rate to the LIBOR, which may include SOFR. The term loan requires monthly principal payments of $0.3&#xa0;million plus accrued interest. We are obligated to prepay the term loan to the extent that the outstanding principal balance at any time exceeds 60% of the fair market value of specified real property securing the loan. We are also obligated to prepay the term loan in an amount equal to 20% of Excess Cash Flow (as defined in the Amended Credit Agreement). The prepayment from Excess Cash Flow generated in 2020 that is required in 2021 is $4.6&#xa0;million. Subject to certain limitations, we may also voluntarily prepay the balance upon ten business days&#x2019; written notice.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revolving loan borrowings under the Amended Credit Agreement bear interest at rates related to the daily three month LIBOR plus 1.5% to 2.0%. The Amended Credit Agreement requires the payment of an unused line fee of between 0.25% and 0.375%, based on the amount by which the Revolver Commitment exceeds the average daily balance of outstanding borrowings (as defined in the Amended Credit Agreement) during any month. Such fee is payable monthly in arrears.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The letters of credit outstanding as of December 31, 2020 relate to workers&#x2019; compensation insurance. Based on the nature of these arrangements and our historical experience, we do not expect to make any material payments under these arrangements.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Amended Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants, events of default, and indemnification provisions in favor of the lender. The negative covenants include restrictions regarding the incurrence of liens and indebtedness and certain acquisitions and dispositions of assets and other matters, all subject to certain exceptions. The Amended Credit Agreement also requires us to regularly provide financial information to Wells Fargo. Under the terms of the Amended Credit Agreement, mandatory prepayments may be required to the extent the revolving loans exceed the borrowing base or the Maximum Revolver Amount (as defined in the Amended Credit Agreement), or in the event we or our named affiliates receive cash proceeds from the sale or disposition of assets (including proceeds of insurance or arising from casualty losses), subject to certain limitations and exceptions, including sales of assets in the ordinary course of business.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Amended Credit Agreement imposes financial covenants requiring us to maintain a Senior Leverage Ratio (as defined in the Amended Credit Agreement) not greater than 3.00 and a Fixed Charge Coverage Ratio (as defined in the Amended Credit Agreement) of at least 1.10 to 1.00. We were in compliance&#xa0;with all financial covenants as of December&#xa0;31, 2020. Based on our business plan and forecasts of operations, we believe we will remain in compliance with our financial covenants for the next twelve months.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our obligations under the Amended Credit Agreement are secured by a security interest in certain real property owned by us and our subsidiaries and substantially all of our and our subsidiaries&#x2019; other assets.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Recent Accounting Pronouncements</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">For a description of recent accounting pronouncements affecting our company, including the dates of adoption and estimated effects on financial position, results of operations, and cash flows, see Note&#xa0;2 of the Notes to Consolidated Financial Statements in Part&#xa0;II&#xa0;&#x2014; Item&#xa0;8.&#xa0;&#x201c;Financial Statements and Supplementary Data&#x201d; of this 2020 Form&#xa0;10-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       24
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Critical Accounting Estimates</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Management Estimates</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The preparation of our Consolidated Financial Statements requires us to make estimates and judgments that affect the reported amounts of assets, liabilities, revenues, and expenses, and disclosure of contingent assets and liabilities. We base our estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, we evaluate all of our estimates including those related to revenue recognition, business combinations, goodwill, inventories, property and equipment, including depreciation and valuation, share-based compensation, income taxes, allowance for doubtful accounts, and litigation and other contingencies. Actual results may differ from these estimates under different assumptions or conditions. We believe the following critical accounting policies and related judgments and estimates affect the preparation of our Consolidated Financial Statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Revenue Recognition</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of our right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have no alternative use to us. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Estimated total costs of each contract are reviewed on a monthly basis by project management and operations personnel for all active projects. All cost revisions that result in a material change in gross profit are reviewed by senior management personnel. Significant judgment is required in estimating total costs and measuring the progress of project completion, as well as whether a loss is expected to be incurred on the contract. We use certain assumptions and develop estimates based on a number of factors, including the degree of required product customization, our historical experience, the project plans, and an assessment of the risks and uncertainties inherent in the contract related to implementation delays or performance issues that may or may not be within our control. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements may result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration we expect to be entitled to in exchange for the products. All variable consideration that may affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. Our contracts do not contain significant financing.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We do not recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Business Combinations</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related costs are expensed as incurred.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       25
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accounting for business combinations requires management to make significant estimates and assumptions in the determination of the fair value of assets acquired and liabilities assumed in order to allocate purchase price consideration properly. These assumptions and estimates include a market participant&#x2019;s use of the asset and the appropriate discount rates for a market participant. Our estimates are based on historical experience, information obtained from the management of the acquired companies and, when appropriate, include assistance from independent third-party appraisal firms. Our significant assumptions and estimates can include, but are not limited to, the cash flows that an asset is expected to generate in the future, the appropriate weighted-average cost of capital, and the cost savings expected to be derived from acquiring an asset. These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances may occur which may affect the accuracy or validity of such estimates. As a result, during the measurement period, which may be up to one year from the acquisition date, we may record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Goodwill</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill is reviewed for impairment annually as of December&#xa0;31 or whenever events occur or circumstances change that indicates goodwill may be impaired. Goodwill is tested for impairment at the reporting unit level. A reporting unit is an operating segment or one level below an operating segment (also known as a component).</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In testing goodwill for impairment, we have the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-not (more than 50%) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, we evaluate factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. In the evaluation, we look at the long-term prospects for the reporting unit and recognize that current performance may not be the best indicator of future prospects or value, which requires management judgment.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">If the qualitative assessment indicates that it is more-likely-than-not that the fair value of the reporting unit is less than its carrying amount, or if we choose not to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#x2019;s fair value. The fair value calculation uses a combination of income and market approaches. The income approach is based upon projected future after-tax cash flows discounted to present value using factors that consider the timing and risk associated with the future after-tax cash flows. The market approach is based upon historical and/or forward-looking measures using multiples of revenue or earnings before interest, tax, depreciation, and amortization. We utilize a weighted average of the income and market approaches. If the reporting unit&#x2019;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#x2019;s fair value, not to exceed the total amount of goodwill allocated to the reporting unit.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Inventories</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Inventories are stated at the lower of cost and net realizable value. Determining net realizable value of inventories involves judgments and assumptions, including projecting selling prices and cost of sales. To estimate net realizable value, we review recent sales and gross profit history, existing customer orders, current contract prices, industry supply and demand, forecasted steel prices, replacement costs, seasonal factors, general economic trends, and other information, as applicable. If future market conditions are less favorable than those projected by us, inventory write-downs may be required. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the first-in, first-out method of accounting.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Property and Equipment</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment are recorded at cost, and are depreciated using either the units of production method or the straight-line method depending on the classification of the asset. Depreciation expense calculated under the units of production method may be less than, equal to, or greater than depreciation expense calculated under the straight-line method. We evaluate historical and projected units of production at each plant to reassess the units of production expected on an annual basis.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We assess impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) may not be recoverable. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about our expected future operating performance. Estimates of future cash flows used in the recoverability test incorporate our own assumptions about the use of the asset group and shall consider all available evidence. Our estimates of undiscounted cash flows may differ from actual cash flow due to, among other things, technological changes, economic conditions, or changes to our business operations. If we determine the carrying value of the property and equipment will not be recoverable, we calculate and record an impairment loss.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       26
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><i><b>Share-based Compensation</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We recognize the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. We estimate the fair value of restricted stock units and performance share awards using the value of our stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, we recognize compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately not met.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Income Taxes</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future tax consequences of events that have been recognized in our Consolidated Financial Statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of our provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. Our provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and our change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We record income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. We assess our income tax positions and record income tax benefits for all years subject to examination based upon management&#x2019;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-not that an income tax benefit will be sustained, we have recorded the largest amount of income tax benefit with a greater than 50% likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information. For those income tax positions where it is not more-likely-than-not that an income tax benefit will be sustained, no income tax benefit has been recognized in the Consolidated Financial Statements.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Allowance for Doubtful Accounts</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We maintain allowances for estimated losses resulting from the inability of our customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#x2019;s judgment. The extension and revision of credit is determined by obtaining credit rating reports or financial information on the customer. An allowance is recorded based on a variety of factors, including our historical collection experience and our historical product quality claims. At least monthly, we review past due balances to identify the reasons for non-payment. We will write down or write off a receivable account once the account is deemed uncollectible for reasons such as customer quality claims, a contract dispute, deterioration in the customer&#x2019;s financial position, a bankruptcy filing, or other events. We believe the reported allowances as of December&#xa0;31, 2020 are adequate. If the customer&#x2019;s financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances may need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item7a" title="item7a" href="#"></a>Item&#xa0;7A.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Quantitative and Qualitative Disclosures About Market Risk</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The primary market risks affecting our business relate to our exposure to commodity risk, interest rate risk, and foreign currency exchange rate risk.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Commodity Risk</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Certain materials we use in our business are classified as commodities traded in the worldwide markets, of which the most significant commodity is steel, used in the manufacturing of pipe. We do not hedge our commodity risk and do not enter into any transactions in commodities for trading purposes. The impact of volatility in steel prices varies significantly. This volatility can significantly affect our gross profit. Although we seek to recover increases in steel prices through price increases in our products, we have not always been successful.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       27
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Steel comprises approximately 25% to 35% of water infrastructure steel pipe product project costs. As this raw material represents a substantial portion of our cost of sales, we attempt to minimize our risk exposure to steel price volatility by submitting bids based on general assumptions of the expected price of steel when we will receive a purchase order or contract, which is typically awarded within 30 to 90&#xa0;days of the bid date, as well as ordering steel as soon as possible after a project is awarded.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Interest Rate Risk</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our debt bears interest at both fixed and variable rates. As of December&#xa0;31, 2020, we had $13.8&#xa0;million of long-term variable rate debt compared to no variable rate debt outstanding as of December&#xa0;31, 2019. Our finance and operating leases bear fixed rates of interest. Assuming average interest rates and borrowings on variable rate debt, a hypothetical 1.0%, or 100 basis points, change in interest rates would not have a material impact on our Interest expense in 2020 or 2019.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Foreign Currency Exchange Rate Risk</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We conduct business in various foreign countries and, from time to time, settle our transactions in foreign currencies. We have experienced and will continue to experience fluctuations in our net income as a result of gains (losses) on the settlement and the remeasurement of monetary assets and liabilities denominated in currencies that are not the functional currency. As of December&#xa0;31, 2020, our foreign currency exposures were between the U.S. Dollar and the Canadian Dollar and Mexican Peso.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with our strategy for financial risk management and are not used for trading or for speculative purposes. As of December&#xa0;31, 2020, the total notional amount of these foreign currency forward contracts was $15.3&#xa0;million (CAD$19.5&#xa0;million), of which we applied hedge accounting to all. As of December&#xa0;31, 2020, our foreign currency forward contracts mature at various dates through May 2022. As of December&#xa0;31, 2019, the total notional amount of these foreign currency forward contracts was $6.1&#xa0;million (CAD$7.9&#xa0;million), of which we applied hedge accounting to all.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">A hypothetical 10% change in the Canadian Dollar or Mexican Peso foreign currency exchange rates would not have a material impact on our reported Net income in 2020 or 2019.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item8" title="item8" href="#"></a>Item&#xa0;8.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Financial Statements and Supplementary Data</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Consolidated Financial Statements required by this item are included on pages F-1 to F-34&#xa0;at the end of this 2020 Form&#xa0;10&#x2011;K. The financial statement schedule required by this item is included on page S-1.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item9" title="item9" href="#"></a>Item&#xa0;9.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Changes in and Disagreements With Accountants on Accounting and Financial Disclosure</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">None.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item9a" title="item9a" href="#"></a>Item&#xa0;9A.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Controls and Procedures</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Evaluation of Disclosure Controls and Procedures</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Disclosure controls and procedures (as defined in Rules&#xa0;13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934, as amended (&#x201c;Exchange Act&#x201d;)) are designed to provide reasonable assurance that information required to be disclosed in reports we file or submit under the Exchange Act is recorded, processed, summarized, and reported within the time periods specified in the rules and forms of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) and that such information is accumulated and communicated to our management, including our Chief Executive Officer (&#x201c;CEO&#x201d;) and Chief Financial Officer (&#x201c;CFO&#x201d;), as appropriate, to allow timely decisions regarding required disclosures.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       28
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our management, with the participation of our CEO and CFO, evaluated the effectiveness of our disclosure controls and procedures as of December&#xa0;31, 2020. Based on their evaluation, as of December&#xa0;31, 2020, our CEO and CFO have concluded that our disclosure controls and procedures (as defined in Rules&#xa0;13a-15(e) and 15d-15(e) under the Exchange Act) were effective to provide reasonable assurance that information required to be disclosed in reports we file or submit under the Exchange Act is recorded, processed, summarized, and reported within the time periods specified in the rules and forms of the SEC and that such information is accumulated and communicated to our management, including our CEO and CFO, as appropriate to allow timely decisions regarding required disclosures.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Management&#x2019;s Report on Internal Control over Financial Reporting</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our management is responsible for establishing and maintaining adequate internal control over financial reporting, as such term is defined in Exchange Act Rules&#xa0;13a-15(f) and 15d-15(f) under the Exchange Act. Internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with accounting principles generally accepted in the United States of America (&#x201c;U.S.&#xa0;GAAP&#x201d;). Internal control over financial reporting includes those policies and procedures that (i)&#xa0;pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of our assets; (ii)&#xa0;provide reasonable assurance that our transactions are recorded as necessary to permit preparation of financial statements in accordance with U.S.&#xa0;GAAP, and that our receipts and expenditures are being made only in accordance with authorizations of management and our directors; and (iii)&#xa0;provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of our assets that could have a material effect on the financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Under the supervision and with the participation of our management, including our CEO and CFO, we conducted an assessment of our internal control over financial reporting as of December&#xa0;31, 2020. In making this assessment, we used the criteria set forth in &#x201c;Internal Control-Integrated Framework&#x201d; (2013) issued by the Committee of Sponsoring Organizations of the Treadway Commission (COSO). Based on this evaluation, management concluded that the Company&#x2019;s internal control over financial reporting was effective as of December&#xa0;31, 2020.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The effectiveness of the Company&#x2019;s internal control over financial reporting as of December&#xa0;31, 2020 has been audited by Moss Adams&#xa0;LLP, an independent registered public accounting firm, as stated in their report which appears herein.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Changes in Internal Control over Financial Reporting</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Except for changes in internal controls that we have made related to the integration of Geneva into the post-acquisition combined company, there were no significant changes in our internal control over financial reporting that occurred during the quarter ended December&#xa0;31, 2020 that materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"><a id="item9b" title="item9b" href="#"></a><b style="font-size: 10pt;">Item&#xa0;9B.</b></td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Other Information</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">None.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="part3" title="part3" href="#"></a>PART III</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item10" title="item10" href="#"></a>Item&#xa0;10.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Directors, Executive Officers and Corporate Governance</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Directors, Executive Officers, Promoters and Control Persons</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by Paragraph&#xa0;(a) and Paragraphs&#xa0;(c) through&#xa0;(g) of Item&#xa0;401 of Regulation&#xa0;S-K (except for information required by Paragraph&#xa0;(e) of that Item to the extent the required information pertains to our executive officers) and Item&#xa0;405 of Regulation&#xa0;S-K is hereby incorporated by reference from our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the captions <i>Election of Directors</i> and <i>Section&#xa0;16(a) Beneficial Ownership Reporting Compliance</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       29
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table lists our executive officers and each of their ages and positions as of December&#xa0;31, 2020.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Name</b></p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Age</b></p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Current Position with Northwest Pipe</b><b>&#xa0;</b><b>Company</b></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">Scott Montross</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">55</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director, President, and Chief Executive Officer</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">Aaron Wilkins</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">46</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Senior Vice President, Chief Financial Officer, and Corporate Secretary</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">William Smith</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">65</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Executive Vice President of&#xa0;Water Transmission Engineered Systems</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">Miles Brittain</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">57</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Senior Vice President of Operations</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(204, 238, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">Eric Stokes</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">49</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Senior Vice President of Sales and Marketing, Water Transmission</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; background-color: rgb(255, 255, 255);">
     <td style="vertical-align: bottom; width: 20%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: left;">Megan Kendrick</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 15%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">44</p> </td>
     <td style="vertical-align: bottom; width: 2%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: bottom; width: 61%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Vice President of Human Resources</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Scott Montross </i>has served as our Director, President and CEO since January&#xa0;1, 2013. Mr.&#xa0;Montross joined the Company in May 2011 and served as our Executive Vice President and Chief Operating Officer. Mr.&#xa0;Montross has served in Senior Vice President level positions since 2003 with commercial, operational, and planning responsibilities and has spent a total of 24 years in the steel industry prior to joining the Company. Mr.&#xa0;Montross previously served as the Executive Vice President of the Flat Products Group for EVRAZ North America's Oregon Steel Division from 2010 to 2011, as the Vice President and General Manager of EVRAZ North America from 2007 to 2010, as the Vice President of Marketing and Sales for Oregon Steel Mills, Inc. from 2003 to 2007, and as the Vice President of Marketing and Sales for National Steel Corporation from 2002 to 2003.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Aaron Wilkins </i>has served as our Senior Vice President and CFO since April 2020 and our Corporate Secretary since September 2019. Mr.&#xa0;Wilkins served as our Vice President of Finance and Corporate Controller from September 2016 to April 2020. Prior to joining the Company, Mr.&#xa0;Wilkins served two years as CFO of Omega Morgan, an industrial services company. Prior to that, Mr.&#xa0;Wilkins served seven years with Oregon Steel Mills, Inc. and then EVRAZ North America holding several finance and accounting positions including Corporate Controller and Assistant Treasurer and Director of Finance of EVRAZ North America&#x2019;s Flat Products Group.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>William Smith </i>has served as our Executive Vice President of Water Transmission Engineered Systems since September 2018. Prior to that, Mr.&#xa0;Smith served as our Executive Vice President Water Transmission, Executive Vice President Operations, and as Vice President of Operations for Water Transmission. Prior to joining the Company in 2010, Mr.&#xa0;Smith spent 14&#xa0;years with Ameron International Corporation, holding several key positions including President, Water Transmission. A 44-year veteran of the steel pipe business, Mr.&#xa0;Smith has held positions with United Concrete Pipe, Thompson Steel Pipe, and LB Foster.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Miles Brittain</i> has served as our Vice President of Operations since February 2020. Prior to that, Mr.&#xa0;Brittain served as our Vice President of Operations for Water Transmission Engineered Systems from September 2018 to February 2020 and our Vice President of Operations, Water Transmission from 2013 to September 2018. Prior to joining the Company, Mr.&#xa0;Brittain served in the steel industry for over 28&#xa0;years, holding key positions including Vice President and General Manager for EVRAZ North America/Claymont Steel, Director of Operations for EVRAZ North America/Oregon Steel Mills, Inc., and Regional Director of Quality Assurance for National Steel Corporation.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Eri</i><i>c</i><i> Stokes</i> has served as our Senior Vice President of Sales and Marketing, Water Transmission since February 2020. Prior to that, Mr.&#xa0;Stokes served as our Vice President of Sales from April 2012 to February 2020. Prior to joining the Company in 2008, Mr.&#xa0;Stokes spent twelve years with Anderson Construction, holding key positions including Project Superintendent.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Megan Kendrick </i>has served as our Vice President of Human Resources since January 2017. Prior to that, Ms.&#xa0;Kendrick held a variety of positions within the Company in the accounting and human resource departments. Prior to joining the Company in 2008, Ms.&#xa0;Kendrick worked for the Memphis Grizzlies of the National Basketball Association for seven years.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Code of Ethics</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have a Code of Business Conduct and Ethics for all employees and a Code of Ethics for Senior Financial Officers. Copies can be found on our website at <span style="text-decoration: underline; ">www.nwpipe.com</span> in the Corporate Governance area of the Investor Relations section or by writing to Northwest Pipe Company, attn. Corporate Secretary, 201 NE Park Plaza Drive, Suite&#xa0;100, Vancouver, WA 98684. None of the material on our website is part of this 2020 Form&#xa0;10-K. If there is any waiver from any provision of either the Code of Business Conduct and Ethics or the Code of Ethics for Senior Financial Officers, we will disclose the nature of such waiver on our website or in a Current Report on Form&#xa0;8-K.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       30
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Corporate Governance</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by Items&#xa0;407(c)(3), (d)(4), and (d)(5) of Regulation&#xa0;S-K is hereby incorporated by reference from our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the captions <i>Nominating and Governance Committee, Nominations by Shareholders </i>and <i>Audit Committee</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item11" title="item11" href="#"></a>Item&#xa0;11.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Executive Compensation</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by this Item is hereby incorporated by reference from our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the captions <i>Executive Compensation, Compensation Committee Interlocks and Insider Participation, </i>and <i>Compensation Committee Report</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item12" title="item12" href="#"></a>Item&#xa0;12.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table provides information as of December&#xa0;31, 2020, with respect to the shares of our common stock that may be issued under our existing equity compensation plans.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Number of securities to</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>be issued upon exercise</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>of outstanding options,</b><b> </b><b>warrants and rights </b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Weighted-average</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>exercise price of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>outstanding</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>options, warrants</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>and rights</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Number of securities remaining available for future issuance under equity compensation plans</b><b> </b><b>(excluding securities reflected in</b><b> </b><b>column (a))</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom;">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%; border-bottom: thin solid rgb(0, 0, 0);"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Plan Category</b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(a) </b><span style="font-family:Times New Roman;font-size:8pt;"><b>(1)</b></span></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(b) </b><span style="font-family:Times New Roman;font-size:8pt;"><b>(2)</b></span></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
     <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(c)</b></b></p> </td>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%; padding-bottom: 1px;">&#xa0;</td>
    </tr>

    <tr>
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Equity compensation plans approved by security holders</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">129,572</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">354,022</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Equity compensation plans not approved by security holders <span style="font-family:Times New Roman;font-size:8pt;">(3)</span></p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
    </tr>

    <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
     <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total</p> </td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">129,572</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
     <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">354,022</td>
     <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(1)</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Consists of our 2007 Stock Incentive Plan. The number of securities disclosed in this table for performance share awards are at the target level of 100%.&#xa0;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(2)</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Reflects the exercise price per share of common stock purchasable upon the exercise of stock options only. As of December&#xa0;31, 2020, no stock options were outstanding.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(3)</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">We do not have any equity compensation plans or arrangements that have not been approved by shareholders.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by Item&#xa0;403 of Regulation&#xa0;S-K is included in our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the caption <i>Stock Owned by Management and Principal Shareholders</i> and is incorporated herein by reference.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item13" title="item13" href="#"></a>Item&#xa0;13.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Certain Relationships and Related Transactions, and Director Independence</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by this Item is hereby incorporated by reference from our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the captions <i>Certain Relationships and Related Transactions </i>and <i>Election of Directors</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item14" title="item14" href="#"></a>Item&#xa0;14.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Principal </b><b>Accountant </b><b>Fees and Services</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The information required by this Item is hereby incorporated by reference from our definitive proxy statement for the 2021 Annual Meeting of Shareholders under the caption <i>Independent Registered Public Accounting Firm</i>.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       31
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="part4" title="part4" href="#"></a>PART IV</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><a id="item15" title="item15" href="#"></a>Item&#xa0;15.</b></p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Exhibit</b><b> and</b><b> Financial Statement Schedules</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">(a)&#xa0;(1)&#xa0;<i>Consolidated Financial Statements</i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Consolidated Financial Statements, together with the report thereon of Moss Adams&#xa0;LLP are included on the pages indicated below.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align: bottom; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Page</b>&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#audreport" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Report of Independent Registered Public Accounting Firm</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-1</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#ops" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consolidated Statements of Operations for the years ended December&#xa0;31, </span><span style="text-decoration: underline; ">2020, </span><span style="text-decoration: underline; ">2019, </span><span style="text-decoration: underline; ">and </span><span style="text-decoration: underline; ">2018</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-4</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#compinc" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consolidated Statements of Comprehensive Income for the years ended December&#xa0;31, </span><span style="text-decoration: underline; ">2020, </span><span style="text-decoration: underline; ">2019, </span><span style="text-decoration: underline; ">and </span><span style="text-decoration: underline; ">2018</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-5</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#balance" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consolidated Balance Sheets as of December&#xa0;31, </span><span style="text-decoration: underline; ">2020 and </span><span style="text-decoration: underline; ">2019</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-6</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#equity" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consolidated Statements of Stockholders&#x2019; Equity for the years ended December&#xa0;31, </span><span style="text-decoration: underline; ">2020, </span><span style="text-decoration: underline; ">2019, </span><span style="text-decoration: underline; ">and </span><span style="text-decoration: underline; ">2018</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-7</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#cashflows" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consolidated Statements of Cash Flows for the years ended December&#xa0;31, </span><span style="text-decoration: underline; ">2020, </span><span style="text-decoration: underline; ">2019, </span><span style="text-decoration: underline; ">and </span><span style="text-decoration: underline; ">2018</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-8</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: middle; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 95%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#notes" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Notes to Consolidated Financial Statements</span></a></p> </td>
     <td style="vertical-align: bottom; width: 5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">F-10</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">(a)&#xa0;(2)&#xa0;<i>Financial Statement Schedule</i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following schedule is filed herewith:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:bottom;width:10%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:bottom;width:84.7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:bottom;border-bottom:solid 1px #000000;;width:5.3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Page</b>&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:10%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Schedule&#xa0;II</p> </td>
     <td style="vertical-align:bottom;width:84.7%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><a href="#sched2" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Valuation and Qualifying Accounts</span></a></p> </td>
     <td style="vertical-align:bottom;width:5.3%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">S-1</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Schedules not listed above have been omitted because the information required to be set forth therein is not applicable or is included in the Consolidated Financial Statements or notes thereto.</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">(a)&#xa0;(3)&#xa0;Exhibits included herein:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; border-bottom: 1px solid rgb(0, 0, 0); width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Exhibit<br /> Number</b></p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Description</b></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774918014193/ex_119451.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Membership Interest Purchase Agreement dated as of July&#xa0;27, 2018 by and between Northwest Pipe Company and Ameron International Corporation, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on August&#xa0;1, 2018</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">2.2</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920001899/ex_171025.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Agreement and Plan of Merger dated as of January&#xa0;31, 2020 among Northwest Pipe Company, Hatch Acquisition Corporation, Geneva Pipe Company,&#xa0;Inc., the Shareholders of Geneva Pipe Company,&#xa0;Inc., and Kurt Johnson, as Shareholder Representative, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on February&#xa0;6, 2020</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">3.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Second Restated Articles of Incorporation, incorporated by reference to Exhibits to the Company&#x2019;s Registration Statement on Form&#xa0;S-1, as amended, effective November&#xa0;30, 1995, Commission Registration No.&#xa0;33-97308</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: middle; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">3.2</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000119312506212073/dex42.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">First Amendment to Second Restated Articles of Incorporation, incorporated by reference to Exhibits to the Company&#x2019;s Registration Statement on Form&#xa0;S-3, as amended, as filed with the Securities and Exchange Commission on October&#xa0;20, 2006, Commission Registration No.&#xa0;333-137923</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: middle; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">3.3</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774916033425/ex3-1.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Third Amended and Restated Bylaws, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K as filed with the Securities and Exchange Commission on June&#xa0;7, 2016</span></a></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       32
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; border-bottom: 1px solid rgb(0, 0, 0); width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Exhibit<br /> Number</b></p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Description</b></p> </td>
    </tr>

   </tbody>
  </table>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">3.4</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920008034/ex_181751.htm" style="-sec-extract:exhibit;">First Amendment to Third Amended and Restated Bylaws, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;20, 2020</a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">4.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920004236/nwpx20191231_10k.htm" style="-sec-extract:exhibit;">Description of Securities Registered Under Section&#xa0;12 of the Securities Exchange Act of 1934, incorporated by reference to the Company&#x2019;s Form&#xa0;10-K for the year ended December&#xa0;31, 2019, as filed with the Securities and Exchange Commission on March&#xa0;3, 2020</a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000091205700036237/ex-10_21.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Northwest Pipe NQ Retirement Savings Plan, dated July&#xa0;1, 1999, incorporated by reference to Exhibits to the Company&#x2019;s Quarterly Report Form&#xa0;10-Q for the quarter ended June&#xa0;30, 2000, as filed with the Securities and Exchange Commission on August&#xa0;11, 2000*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: middle; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.2</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000119312507090451/ddef14a.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Northwest Pipe Company 2007 Stock Incentive Plan, incorporated by reference to Appendix&#xa0;A to the Company&#x2019;s Definitive Proxy Statement dated April&#xa0;20, 2007, as filed with the Securities and Exchange Commission on April&#xa0;26, 2007*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: middle; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.3</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000119312513158965/d516547ddef14a.htm#toc516547_54" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Amendment to the Northwest Pipe Company 2007 Stock Incentive Plan dated April&#xa0;12, 2013, incorporated by reference to Appendix&#xa0;A to the Company&#x2019;s Definitive Proxy Statement, as filed with the Securities and Exchange Commission on April&#xa0;17, 2013*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.4</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774916036297/ex10-3.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Amended and Restated Change in Control Agreement between Scott Montross and Northwest Pipe Company dated August&#xa0;1, 2016, incorporated by reference to the Company&#x2019;s Form&#xa0;10-Q for the quarter ended June&#xa0;30, 2016, as filed with the Securities and Exchange Commission on August&#xa0;3, 2016*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.5</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774916036297/ex10-4.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Form of Amended and Restated Change in Control Agreement between Northwest Pipe Company and each of Robin Gantt and Bill Smith dated August&#xa0;1, 2016, incorporated by reference to the Company&#x2019;s Form&#xa0;10-Q for the quarter ended June&#xa0;30, 2016, as filed with the Securities and Exchange Commission on August&#xa0;3, 2016*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.6</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774916040860/ex10-1.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Change in Control Agreement between Northwest Pipe Company and Aaron Wilkins dated August&#xa0;1, 2016, incorporated by reference to the Company&#x2019;s Form&#xa0;10-Q for the quarter ended September&#xa0;30, 2016, as filed with the Securities and Exchange Commission on November&#xa0;2, 2016*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.7</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774918019162/ex_126877.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Credit Agreement dated October&#xa0;25, 2018 by and among Wells Fargo Bank, National Association, Northwest Pipe Company, and Ameron Water Transmission Group, LLC, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on October&#xa0;31, 2018</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.8</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774918019162/ex_126878.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Guaranty and Security Agreement dated October&#xa0;25, 2018 among Northwest Pipe Company, Ameron Water Transmission Group, LLC, Permalok Corporation, Thompson Tank Holdings, Inc., WTG Holding U.S., Inc., Bolenco Corporation, and Wells Fargo, National Association, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on October&#xa0;31, 2018</span></a></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.9</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774919006252/ex_139493.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Form of Performance Share Unit Agreement, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;1, 2019*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.10</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774919006252/ex_139494.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Form of Restricted Stock Unit Agreement, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;1, 2019*</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.11</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920001899/ex_171233.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consent and Amendment No.&#xa0;1 to Credit Agreement dated January&#xa0;31, 2020 by and among Wells Fargo Bank, National Association, Northwest Pipe Company, and NWPC,&#xa0;LLC, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on February&#xa0;6, 2020</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.12</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920006765/ex_179382.htm" style="-sec-extract:exhibit;">Form of Performance Share Unit Agreement, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;1, 2020</a>*</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       33
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; border-bottom: 1px solid rgb(0, 0, 0); width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Exhibit<br /> Number</b></p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Description</b></p> </td>
    </tr>

   </tbody>
  </table>
  <table cellpadding="0" cellspacing="0" style="margin-left: 0pt; width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
   <tbody>
    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.13</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920006765/ex_179383.htm" style="-sec-extract:exhibit;">Form of Restricted Stock Unit Agreement, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;1, 2020</a>*</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.14</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920007135/ex_180058.htm" style="-sec-extract:exhibit;">Separation Agreement dated March&#xa0;30, 2020 between Northwest Pipe Company and Robin Gantt, incorporated by reference to the Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;3, 2020</a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">10.15</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="http://www.sec.gov/Archives/edgar/data/1001385/000143774920007135/ex_180059.htm" style="-sec-extract:exhibit;">Change in Control Agreement dated April&#xa0;1, 2020 between Northwest Pipe Company and Aaron Wilkins, incorporated by reference to the&#xa0;Company&#x2019;s Current Report on Form&#xa0;8-K, as filed with the Securities and Exchange Commission on April&#xa0;3, 2020</a>*</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">21.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223767.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Subsidiaries of the Registrant, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">23.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223768.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Consent of Moss Adams LLP, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">31.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223769.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Certification of Chief Executive Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">31.2</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223770.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Certification of Chief Financial Officer pursuant to Section 302 of the Sarbanes-Oxley Act of 2002, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">32.1</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223771.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">32.2</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><a href="ex_223772.htm" style="-sec-extract:exhibit;"><span style="text-decoration: underline; ">Certification pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, filed herewith</span></a></p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.INS</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Instance Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.SCH</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Taxonomy Extension Schema Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.CAL</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Taxonomy Extension Calculation Linkbase Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.DEF</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Taxonomy Extension Definition Linkbase Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.LAB</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Taxonomy Extension Label Linkbase Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">101.PRE</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inline XBRL Taxonomy Extension Presentation Linkbase Document</p> </td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
    </tr>

    <tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
     <td style="vertical-align: top; width: 10%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">104</p> </td>
     <td style="vertical-align: top; width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     <td style="vertical-align: middle; width: 89%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Cover Page Interactive Data File (formatted as Inline XBRL and contained in Exhibit 101)</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <hr style="text-align: left; height: 1px; color: #000000; background-color: #000000; width: 10%; border: none; margin: 3pt auto 3pt 0" />
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">*</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">This exhibit constitutes a management contract or compensatory plan or arrangement.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 63pt;"><a id="item16" title="item16" href="#"></a><b style="font-size: 10pt; text-align: justify;">Item&#xa0;16.</b></td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Form 10-K Summary</b></p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">None.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       34
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="audreport" title="audreport" href="#"></a>Report of Independent Registered Public Accounting Firm</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The Board of Directors and Stockholders of</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Northwest Pipe Company</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Opinions on the Financial Statements and Internal Control over Financial Reporting</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We have audited the accompanying consolidated balance sheets of Northwest Pipe Company and subsidiaries (the &#x201c;Company&#x201d;) as of December&#xa0;31, 2020 and 2019, the related consolidated statements of operations, comprehensive income, stockholders&#x2019; equity, and cash flows for each of the three years in the period ended December&#xa0;31, 2020, and the related notes and schedule listed in the Index at Item&#xa0;15(a)(2) (collectively referred to as the &#x201c;consolidated financial statements&#x201d;). We also have audited the Company&#x2019;s internal control over financial reporting as of December&#xa0;31, 2020, based on criteria established in <i>Internal Control&#xa0;- Integrated Framework</i> <i>(2013)</i> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#x201c;COSO&#x201d;).</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In our opinion, the consolidated financial statements referred to above present fairly, in all material respects, the consolidated financial position of the Company as of December&#xa0;31, 2020 and 2019, and the consolidated results of its operations and its cash flows for each of the three years in the period ended December&#xa0;31, 2020, in conformity with accounting principles generally accepted in the United States of America. Also, in our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December&#xa0;31, 2020, based on criteria established in <i>Internal Control&#xa0;- Integrated Framework (2013)</i> issued by COSO.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Change in Accounting Principle</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As discussed in Note&#xa0;9 to the consolidated financial statements, in 2019 the Company changed its method of accounting for leases due to the adoption of Accounting Standards Codification Topic No.&#xa0;842.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Basis for Opinions</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#x2019;s management is responsible for these consolidated financial statements, for maintaining effective internal control over financial reporting, and for its assessment of the effectiveness of internal control over financial reporting, included in the accompanying Management&#xa0;Report on Internal Control over Financial Reporting included in Item&#xa0;9A. Our responsibility is to express an opinion on the Company&#x2019;s consolidated financial statements and an opinion on the Company&#x2019;s internal control over financial reporting based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (&#x201c;PCAOB&#x201d;) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audits to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud, and whether effective internal control over financial reporting was maintained in all material respects.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Our audits of the consolidated financial statements included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures to respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. Our audit of internal control over financial reporting included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, and testing and evaluating the design and operating effectiveness of internal control based on the assessed risk. Our audits also included performing such other procedures as we considered necessary in the circumstances. We believe that our audits provide a reasonable basis for our opinions.</p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-1
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Definition and Limitations of Internal Control Over Financial Reporting</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">A company&#x2019;s internal control over financial reporting is a process designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles. A company&#x2019;s internal control over financial reporting includes those policies and procedures that (1)&#xa0;pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the company; (2)&#xa0;provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with generally accepted accounting principles, and that receipts and expenditures of the company are being made only in accordance with authorizations of management and directors of the company; and (3)&#xa0;provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use, or disposition of the company&#x2019;s assets that could have a material effect on the financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i><b>Critical Audit Matters</b></i></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The critical audit matters communicated below are matters arising from the current period audit of the consolidated financial statements that were communicated or required to be communicated to the Audit Committee and that (1)&#xa0;relate to accounts or disclosures that are material to the consolidated financial statements and (2)&#xa0;involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the consolidated financial statements, taken as a whole, and we are not, by communicating the critical audit matters below, providing a separate opinion on the critical audit matters or on the accounts or disclosures to which they relate.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">
   </p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As presented in the consolidated statement of operations and described in Notes 2 and 15 to the consolidated financial statements, the Company&#x2019;s consolidated contract revenues and costs of revenue were $285.9&#xa0;million and $235.4&#xa0;million, respectively, for the year ended December&#xa0;31, 2020. Revenue of $241.7&#xa0;million was derived from contracts where revenue is recognized over time as work is completed because of the continuous transfer of control to the customer. Under this method, the costs incurred to date as a percentage of total estimated costs at completion are used to calculate revenue. Total estimated costs, and thus contract revenue and margin, are impacted by many factors, which can cause significant changes in estimates during the life cycle of a project.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Based on the significant judgement required by management and the high degree of subjectivity involved in the determination of estimated costs to complete a contract, which in turn led to a high degree of auditor judgement, effort and subjectivity in performing procedures and evaluating audit evidence, we have identified these estimates as a critical audit matter. Changes in these estimates could have significant impact on both the timing and amount of contract revenue to be recognized.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The primary procedures we performed to address this critical audit matter included:</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Obtained an understanding of the Company&#x2019;s revenue recognition process and evaluated the design and operating effectiveness of controls as it related to the Company&#x2019;s accumulation of the estimated costs to complete a contract. This included testing controls over the Company&#x2019;s review of monthly changes in estimated costs to complete a contract.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Direct tested contracts based on earned revenue for the year ended December&#xa0;31, 2020, and randomly sampled contracts from the remaining population.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Assessed the appropriateness of the assumptions and judgments underlying the accounting for these contracts as follows:</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 2%;">&#xa0;</td>
     <td style="width: 2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="width: 96%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Inquired with management to understand the status of the contract, changes from prior years, and key assumptions in the development of the estimated costs to complete on the contracts.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 2%;">&#xa0;</td>
     <td style="width: 2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="width: 96%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Assessed the reasonableness of estimated costs to complete by analyzing historical contract performance relative to overall contractual commitments and estimated gross margin.&#xa0; We assessed management&#x2019;s assumptions on future contract costs by comparing them with executed change orders, estimate documentation, correspondence with the customer, and job cost details with supporting third-party evidence.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 2%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td style="width: 98%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Tested management&#x2019;s cost estimates by performing a lookback analysis comparing margins and estimated costs to complete on contracts in process as of December&#xa0;31, 2019, that were completed or in process during the year ended December&#xa0;31, 2020.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-2
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">
   </p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As described in Notes 2 and 3 to the consolidated financial statements, the Company completed the acquisition of Geneva Pipe Company,&#xa0;Inc. for a purchase price of approximately $49.4&#xa0;million in cash.&#xa0; The transaction was accounted for as a business combination in which management estimated the fair values of the identified assets acquired and liabilities assumed.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Auditing the Company's accounting for its acquisition of Geneva Pipe Company,&#xa0;Inc. was complex due to the significant estimation uncertainty in the Company&#x2019;s determination of the $11.2&#xa0;million fair value of identified intangible assets, which consisted of customer relationships, trade names, and backlog. The significant estimation uncertainty was primarily due to the complexity of the valuation models used to measure the fair value of the intangible assets and the sensitivity of the respective fair value estimates to the significant underlying assumptions. The significant assumptions used to estimate the fair value of the intangible assets included the discount rates, useful lives, royalty rates, customer attrition, and revenue growth rates. These significant assumptions are especially challenging to audit as they are forward looking and could be affected by future economic and market conditions. For this reason, we identified the valuation of acquired intangible assets as the critical audit matter.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The primary procedures we performed to address this critical audit matter included:</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Obtained an understanding of the Company&#x2019;s acquisition process and evaluated the design and operating effectiveness of controls as it related to the Company&#x2019;s valuation process and methodology for acquired intangible assets. This included testing controls over the Company&#x2019;s estimation process supporting the recognition and measurement of intangible assets, as well as controls over management&#x2019;s judgments and evaluation of underlying assumptions used in their valuation.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Evaluated the Company&#x2019;s methodology used to estimate the fair value of the customer relationships, trade names, and backlog, including involving valuation specialists to assist with the evaluation of the methodology used by the Company and of certain assumptions and conclusions included in the fair value estimates. For example, our internal valuation specialists performed independent analysis to assess the reasonableness of the acquired entity&#x2019;s discount rate, useful lives and royalty rate, as it related to the valuation of the customer relationships, trade names, and backlog.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
   <tbody>
    <tr style="vertical-align: top;">
     <td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">&#x2022;</p> </td>
     <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Evaluated the significant assumptions used by the Company, including projected financial information of the acquired entity, which primarily related to revenue growth and customer attrition rates, including testing the completeness and accuracy of the underlying data supporting the significant assumptions and estimates. Specifically, when evaluating the assumptions related to the revenue growth rates and changes in the business that would drive these forecasted growth rates, we compared the assumptions to industry trends, historical growth rates, and subsequent results to evaluate management&#x2019;s estimates as of the date of the transaction.</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">/s/&#xa0;Moss Adams LLP</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Portland, Oregon</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">March&#xa0;4, 2021&#xa0;</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p>
  <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">We have served as the Company&#x2019;s auditor since 2016.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-3
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="ops" title="ops" href="#"></a>CONSOLIDATED STATEMENTS OF OPERATIONS</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(In thousands, except per share amounts)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#xa0;</b></p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="width: 52%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013589" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">285,907</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013590" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">279,317</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013591" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">172,149</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cost of sales</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013592" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3">235,388</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013593" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3">232,133</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013594" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3">160,053</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Gross profit</p> </td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013595" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:GrossProfit" scale="3" format="ixt:numdotdecimal" decimals="-3">50,519</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013596" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:GrossProfit" scale="3" format="ixt:numdotdecimal" decimals="-3">47,184</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013597" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:GrossProfit" scale="3" format="ixt:numdotdecimal" decimals="-3">12,096</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Selling, general, and administrative expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013598" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">24,954</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013599" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">18,495</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013600" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:SellingGeneralAndAdministrativeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">16,663</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Gain on sale of facilities</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013601" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013602" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013603" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:numdotdecimal" decimals="-4">2,960</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Restructuring expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013604" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RestructuringCharges" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013605" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RestructuringCharges" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013606" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RestructuringCharges" scale="3" format="ixt:numdotdecimal" decimals="-3">1,364</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating income (loss)</p> </td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013607" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OperatingIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">25,565</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013608" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OperatingIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">28,689</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013609" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OperatingIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,971</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013610" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013611" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013612" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:numdotdecimal" decimals="-4">20,080</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013613" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">953</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013614" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">4,383</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013615" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">267</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Interest income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013616" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:InvestmentIncomeInterestAndDividend" scale="3" format="ixt:numdotdecimal" decimals="-3">49</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013617" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:InvestmentIncomeInterestAndDividend" scale="3" format="ixt:numdotdecimal" decimals="-4">40</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013618" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:InvestmentIncomeInterestAndDividend" scale="3" format="ixt:numdotdecimal" decimals="-3">267</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Interest expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013619" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:InterestExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">933</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013620" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:InterestExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">472</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013621" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:InterestExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">583</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Income before income taxes</p> </td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013622" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-3">25,634</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013623" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-4">32,640</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013624" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-4">17,060</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Income tax expense (benefit)</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013625" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">6,584</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013626" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,738</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013627" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,252</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013628" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013629" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013630" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
     </tr>

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

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income per share:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013632" contextRef="d_2020-01-01_2020-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">1.95</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013633" contextRef="d_2019-01-01_2019-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">2.86</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013634" contextRef="d_2018-01-01_2018-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">2.09</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013635" contextRef="d_2020-01-01_2020-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">1.93</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013636" contextRef="d_2019-01-01_2019-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">2.85</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013637" contextRef="d_2018-01-01_2018-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">2.09</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

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

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Shares used in per share calculations:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013639" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,788</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013640" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,741</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013641" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,726</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013642" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,873</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013643" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,779</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013644" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,733</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

    </tbody>
   </table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">The accompanying notes are an integral part of these consolidated financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-4
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="compinc" title="compinc" href="#"></a>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(In thousands)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="width: 52%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013645" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013646" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013647" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="width: 52%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other comprehensive income (loss), net of tax:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Pension liability adjustment</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013649" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">25</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013650" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">16</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013651" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">115</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Unrealized gain (loss) on cash flow hedges</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013652" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">27</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013653" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">59</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013654" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" scale="3" format="ixt:numdotdecimal" decimals="-3">24</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other comprehensive loss, net of tax</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013655" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">52</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013656" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">43</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013657" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">91</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Comprehensive income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013658" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">18,998</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013659" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">27,859</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013660" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ComprehensiveIncomeNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">20,221</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

    </tbody>
   </table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">The accompanying notes are an integral part of these consolidated financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-5
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="balance" title="balance" href="#"></a>CONSOLIDATED BALANCE SHEETS</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Dollar amounts in thousands, except per share amounts)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Current assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 64.2%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013663" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" format="ixt:numdotdecimal" decimals="-3">37,927</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013664" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" scale="3" format="ixt:numdotdecimal" decimals="-3">31,014</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 36pt; text-indent: -18pt;">Trade and other receivables, less allowance for doubtful accounts of $<span style="-sec-ix-hidden:c70013667">767</span> and $<span style="-sec-ix-hidden:c70013668">801</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013665" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:ReceivablesNetCurrent" scale="3" format="ixt:numdotdecimal" decimals="-4">42,680</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013666" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:ReceivablesNetCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">38,026</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013669" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">76,985</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013670" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerAssetNetCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">91,186</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013671" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventoryNet" scale="3" format="ixt:numdotdecimal" decimals="-3">29,177</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013672" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventoryNet" scale="3" format="ixt:numdotdecimal" decimals="-3">30,654</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013673" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">5,194</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013674" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">4,159</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total current assets</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013675" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AssetsCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">191,963</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013676" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AssetsCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">195,039</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Property and equipment, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013677" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">110,184</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013678" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">99,631</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Operating lease right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013679" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">30,813</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013680" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">7,683</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013681" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:Goodwill" scale="3" format="ixt:numdotdecimal" decimals="-3">22,985</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013682" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:Goodwill" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Intangible assets, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013683" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">10,518</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013684" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,231</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);" class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013685" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OtherAssetsNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">6,552</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013686" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OtherAssetsNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">6,661</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013687" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:Assets" scale="3" format="ixt:numdotdecimal" decimals="-3">373,015</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013688" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:Assets" scale="3" format="ixt:numdotdecimal" decimals="-3">310,245</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>Liabilities and Stockholders&#x2019; Equity</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Current liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Current portion of long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013691" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LongTermDebtCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">7,701</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013692" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:LongTermDebtCurrent" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013693" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccountsPayableCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">12,993</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013694" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccountsPayableCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">15,493</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013695" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">16,814</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013696" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-4">12,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Contract liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013697" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">6,189</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013698" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">12,281</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Current portion of operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013699" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">2,204</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013700" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">1,642</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total current liabilities</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013701" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">45,901</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013702" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:LiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">41,566</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013703" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LongTermDebtNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">5,888</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013704" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:LongTermDebtNoncurrent" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013705" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">27,911</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013706" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">6,247</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013707" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" format="ixt:numdotdecimal" decimals="-3">12,481</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013708" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" format="ixt:numdotdecimal" decimals="-3">4,265</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Other long-term liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013709" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">11,208</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013710" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">10,009</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013711" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:Liabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">103,389</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013712" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:Liabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">62,087</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);" class="GFJY4-DFU-com-rdg-thunderdome-client-resources-CssResource-html-lineItem-v2v-addition"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Commitments and contingencies (Note 14)</p> <span style="-sec-ix-hidden:c70013714">&#xa0;</span></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;<span style="-sec-ix-hidden:c70013715">&#xa0;</span></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td colspan="1" style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt 0pt 0pt 9pt; text-align: justify;">Stockholders&#x2019; equity:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Preferred stock, $<span style="-sec-ix-hidden:c70013719"><span style="-sec-ix-hidden:c70013720">.01</span></span> par value, <span style="-sec-ix-hidden:c70013721"><span style="-sec-ix-hidden:c70013722">10,000,000</span></span> shares authorized, <span style="-sec-ix-hidden:c70013723"><span style="-sec-ix-hidden:c70013725"><span style="-sec-ix-hidden:c70013724"><span style="-sec-ix-hidden:c70013726">none</span></span></span></span> issued or outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013717" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:PreferredStockValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013718" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:PreferredStockValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Common stock, $<span style="-sec-ix-hidden:c70013729"><span style="-sec-ix-hidden:c70013730">.01</span></span> par value, <span style="-sec-ix-hidden:c70013731"><span style="-sec-ix-hidden:c70013732">15,000,000</span></span> shares authorized, <span style="-sec-ix-hidden:c70013733"><span style="-sec-ix-hidden:c70013735">9,805,437</span></span> and <span style="-sec-ix-hidden:c70013734"><span style="-sec-ix-hidden:c70013736">9,746,979</span></span> shares issued and outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013727" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:CommonStockValue" scale="3" format="ixt:numdotdecimal" decimals="-3">98</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013728" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:CommonStockValue" scale="3" format="ixt:numdotdecimal" decimals="-3">97</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Additional paid-in-capital</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013737" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" format="ixt:numdotdecimal" decimals="-3">123,013</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013738" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AdditionalPaidInCapitalCommonStock" scale="3" format="ixt:numdotdecimal" decimals="-3">120,544</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Retained earnings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013739" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" format="ixt:numdotdecimal" decimals="-3">148,381</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013740" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:RetainedEarningsAccumulatedDeficit" scale="3" format="ixt:numdotdecimal" decimals="-3">129,331</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Accumulated other comprehensive loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013741" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,866</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013742" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,814</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total stockholders&#x2019; equity</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013743" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">269,626</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013744" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">248,158</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total liabilities and stockholders&#x2019; equity</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013745" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">373,015</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 12%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013746" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:LiabilitiesAndStockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">310,245</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">The accompanying notes are an integral part of these consolidated financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-6
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="equity" title="equity" href="#"></a>CONSOLIDATED STATEMENTS OF STOCKHOLDERS&#x2019; EQUITY</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Dollar amounts in thousands)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Accumulated</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b><em style="font: inherit;">&#xa0;</em></b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b><em style="font: inherit;">&#xa0;</em></b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Additional</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b><em style="font: inherit;">&#xa0;</em></b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Other</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Total</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;"><em style="font: inherit;">Common Stock</em></em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Paid-In-</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Retained</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><b><em style="font: inherit;">Comprehensive</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Stockholders'</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Shares</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Amount</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Capital</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Earnings</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Loss</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><em style="font: inherit;">Equity</em></b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 28%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balances, December 31, 2017</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013765" contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:SharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,619,755</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013766" contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">96</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013767" contextRef="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">119,856</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013768" contextRef="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">81,757</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013769" contextRef="i_2017-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,445</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013770" contextRef="i_2017-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">200,264</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Cumulative-effect adjustment for ASC Topic 606 (Note&#xa0;15)</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013772" contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013773" contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013774" contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">875</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013775" contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013776" contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">875</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013778" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013779" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013780" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013781" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013782" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Other comprehensive income (loss):</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Pension liability adjustment, net of tax benefit of $46</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013785" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013786" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013787" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013788" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">115</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013789" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">115</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Unrealized gain on cash flow hedges, net of tax expense of $9</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013797" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013798" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013799" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013800" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">24</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013801" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">24</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Issuance of common stock under stock compensation plans</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013808" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" format="ixt:numdotdecimal" decimals="INF">115,300</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013809" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013810" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">1,302</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013811" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013812" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013813" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">1,301</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Share-based compensation expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013815" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013816" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">281</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013817" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013818" contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013819" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">281</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balances, December 31, 2018</p> </td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013820" contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:SharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,735,055</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013821" contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">97</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013822" contextRef="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">118,835</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013823" contextRef="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">101,194</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013824" contextRef="i_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,536</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013825" contextRef="i_2018-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-4">218,590</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Cumulative-effect adjustment for ASU 2018-02 (Note&#xa0;16)</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013827" contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013828" contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013829" contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">235</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013830" contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">235</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013831" contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013833" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013834" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013835" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;"><ix:nonFraction id="c70013836" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013837" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Other comprehensive income (loss):</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Pension liability adjustment, net of tax expense of $5</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013840" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013841" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013842" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013843" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">16</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013844" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">16</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Unrealized loss on cash flow hedges, net of tax benefit of $20</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013852" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013853" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013854" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013855" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">59</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013856" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">59</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Issuance of common stock under stock compensation plans</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013863" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" format="ixt:numdotdecimal" decimals="INF">11,924</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013864" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013865" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013866" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013867" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013868" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Share-based compensation expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013870" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013871" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">1,709</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013872" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013873" contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013874" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">1,709</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balances, December 31, 2019</p> </td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013875" contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:SharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,746,979</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013876" contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">97</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013877" contextRef="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">120,544</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013878" contextRef="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">129,331</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013879" contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,814</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013880" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">248,158</ix:nonFraction></td>
      <td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013882" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013883" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013884" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013885" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013886" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Other comprehensive loss:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Pension liability adjustment, net of tax benefit of $8</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013889" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013890" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013891" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013892" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">25</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013893" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">25</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Unrealized loss on cash flow hedges, net of tax benefit of $9</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013901" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013902" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013903" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013904" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">27</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013905" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">27</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Issuance of common stock under stock compensation plans</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013912" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation" scale="0" format="ixt:numdotdecimal" decimals="INF">58,458</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013913" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013914" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">619</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013915" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013916" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013917" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">618</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Share-based compensation expense</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><em style="font: inherit;">-</em></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013919" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013920" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">3,088</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013921" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013922" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013923" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" scale="3" format="ixt:numdotdecimal" decimals="-3">3,088</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balances, December 31, 2020</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013924" contextRef="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="Share" name="us-gaap:SharesOutstanding" scale="0" format="ixt:numdotdecimal" decimals="INF">9,805,437</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013925" contextRef="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">98</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013926" contextRef="i_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">123,013</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013927" contextRef="i_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">148,381</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70013928" contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,866</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70013929" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3">269,626</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
     </tr>

    </tbody>
   </table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">The accompanying notes are an integral part of these consolidated financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-7
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="cashflows" title="cashflows" href="#"></a>CONSOLIDATED STATEMENTS OF CASH FLOWS</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(In thousands)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#xa0;</b></p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash flows from operating activities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013931" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013932" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013933" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013935" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013936" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013937" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:numdotdecimal" decimals="-4">20,080</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Depreciation and finance lease amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013938" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">12,344</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013939" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">12,391</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013940" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">8,767</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Gain on sale of facilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013941" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013942" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013943" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:GainLossOnDispositionOfFacility" scale="3" format="ixt:numdotdecimal" decimals="-4">2,960</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Amortization of intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013944" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">2,207</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013945" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">322</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013946" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:AmortizationOfIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-4">550</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013947" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">2,908</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013948" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,169</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013949" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,847</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Gain on insurance proceeds</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013950" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:GainOnInsuranceProceeds" scale="3" format="ixt:numdotdecimal" decimals="-3">1,147</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013951" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:GainOnInsuranceProceeds" scale="3" format="ixt:numdotdecimal" decimals="-3">1,641</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013952" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:GainOnInsuranceProceeds" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Share-based compensation expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013953" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">3,088</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013954" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">1,709</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013955" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">281</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Other, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013956" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OtherNoncashIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,889</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013957" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OtherNoncashIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">856</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013958" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OtherNoncashIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">665</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Changes in operating assets and liabilities, net of acquired assets and assumed liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);" class="GFJY4-DFU-com-rdg-thunderdome-client-resources-CssResource-html-lineItem-v2v-addition"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013960" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,563</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013961" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables" scale="3" format="ixt:numdotdecimal" decimals="-3">3,435</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013962" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables" scale="3" format="ixt:numdotdecimal" decimals="-4" sign="-">2,220</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);" class="GFJY4-DFU-com-rdg-thunderdome-client-resources-CssResource-html-lineItem-v2v-addition"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Contract assets, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013963" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">8,109</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013964" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">8,379</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013965" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">17,809</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013966" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInInventories" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">7,153</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013967" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInInventories" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">8,649</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013968" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInInventories" scale="3" format="ixt:numdotdecimal" decimals="-3">13,628</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Prepaid expenses and other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013969" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,514</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013970" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,454</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013971" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" scale="3" format="ixt:numdotdecimal" decimals="-4" sign="-">2,910</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013972" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,501</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013973" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">4,675</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013974" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccountsPayable" scale="3" format="ixt:numdotdecimal" decimals="-3">6,592</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: 0pt;">Accrued and other liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013975" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-4" sign="-">90</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013976" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">2,564</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013977" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,373</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 54pt; text-indent: 0pt;">Net cash provided by (used in) operating activities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013978" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3">56,087</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013979" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3">42,886</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70013980" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" scale="3" format="ixt:numdotdecimal" decimals="-5" sign="-">18,400</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash flows from investing activities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Acquisition of business, net of cash acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013982" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" format="ixt:numdotdecimal" decimals="-3">48,728</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013983" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013984" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" scale="3" format="ixt:numdotdecimal" decimals="-3">37,223</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Purchases of property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013985" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">14,013</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013986" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">8,585</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013987" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">3,797</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Purchases of intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70013988" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">329</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013989" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireIntangibleAssets" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013990" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:PaymentsToAcquireIntangibleAssets" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Proceeds from sale of facilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013991" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:ProceedsFromSaleOfFacility" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013992" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:ProceedsFromSaleOfFacility" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013993" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:ProceedsFromSaleOfFacility" scale="3" format="ixt:numdotdecimal" decimals="-3">8,515</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Proceeds from sale of property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013994" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013995" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">39</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70013996" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">141</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -9pt;">Proceeds from insurance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013997" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ProceedsFromInsuranceSettlementInvestingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3">1,637</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013998" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ProceedsFromInsuranceSettlementInvestingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3">2,123</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70013999" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ProceedsFromInsuranceSettlementInvestingActivities" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 63pt; text-indent: -9pt;">Net cash used in investing activities from continuing operations</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014000" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">61,433</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014001" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">6,423</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014002" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">32,364</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 63pt; text-indent: -9pt;">Net cash provided by investing activities from discontinued operations</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014003" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014004" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014005" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">4,465</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 63pt; text-indent: -9pt;">Net cash used in investing activities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014006" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">61,433</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014007" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">6,423</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014008" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">27,899</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
</tbody></table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-8
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CONSOLIDATED STATEMENTS OF CASH FLOWS, Continued</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(In thousands)</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div>
   <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom;">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash flows from financing activities:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Borrowings on line of credit</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014010" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ProceedsFromLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-3">41,377</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014011" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ProceedsFromLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-3">41,744</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014012" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ProceedsFromLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-3">29,904</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Repayments on line of credit</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014013" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-3">41,377</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014014" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-3">53,208</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014015" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLinesOfCredit" scale="3" format="ixt:numdotdecimal" decimals="-4">18,440</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Borrowings on long-term debt</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014016" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" scale="3" format="ixt:numdotdecimal" decimals="-3">15,879</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014017" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014018" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ProceedsFromIssuanceOfLongTermDebt" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Payments on long-term debt</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014019" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLongTermDebt" scale="3" format="ixt:numdotdecimal" decimals="-3">2,117</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014020" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLongTermDebt" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014021" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RepaymentsOfLongTermDebt" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Payments on finance lease liabilities</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014022" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" format="ixt:numdotdecimal" decimals="-4">420</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014023" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" format="ixt:numdotdecimal" decimals="-3">434</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014024" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" format="ixt:numdotdecimal" decimals="-3">398</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Payments of debt issuance costs</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014025" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" format="ixt:numdotdecimal" decimals="-3">465</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014026" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" format="ixt:numdotdecimal" decimals="-3">228</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014027" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:PaymentsOfDebtIssuanceCosts" scale="3" format="ixt:numdotdecimal" decimals="-3">435</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Tax withholdings related to net share settlements of restricted stock and performance share awards</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014028" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">618</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014029" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014030" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3">1,301</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 54pt; text-indent: -9pt;">Net cash provided by (used in) financing activities</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014031" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3">12,259</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014032" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">12,126</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014033" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" scale="3" format="ixt:numdotdecimal" decimals="-4">9,330</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 54pt; text-indent: -9pt;">Change in cash and cash equivalents</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014034" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" format="ixt:numdotdecimal" decimals="-3">6,913</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014035" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" format="ixt:numdotdecimal" decimals="-3">24,337</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014036" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">36,969</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Cash and cash equivalents, beginning of period</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014037" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">31,014</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014038" contextRef="i_2018-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">6,677</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014039" contextRef="i_2017-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">43,646</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Cash and cash equivalents, end of period</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014040" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">37,927</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014041" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">31,014</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014042" contextRef="i_2018-12-31" unitRef="USD" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" scale="3" format="ixt:numdotdecimal" decimals="-3">6,677</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td>
     </tr>

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

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="width: 52%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
      <td style="width: 13%;">&#xa0;</td>
      <td style="width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Supplemental disclosure of cash flow information:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Cash paid during the period for interest, net of amounts capitalized</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014044" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:InterestPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-3">599</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014045" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:InterestPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-3">369</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014046" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:InterestPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-4">330</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Cash paid (received) during the period for income taxes (net of refunds of $153, $286 and $1)</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014047" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxesPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,397</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014048" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxesPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">55</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014049" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxesPaidNet" scale="3" format="ixt:numdotdecimal" decimals="-4">170</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Noncash investing and financing activities:</p> </td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
      <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Accrued property and equipment purchases</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014054" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" format="ixt:numdotdecimal" decimals="-3">325</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014055" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" format="ixt:numdotdecimal" decimals="-3">719</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014056" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CapitalExpendituresIncurredButNotYetPaid" scale="3" format="ixt:numdotdecimal" decimals="-3">336</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Right-of-use assets obtained in exchange for operating lease liabilities</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014057" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">4,471</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014058" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">1,335</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014059" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

     <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
      <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Right-of-use assets obtained in exchange for finance lease liabilities</p> </td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014060" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">507</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014061" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">819</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
      <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014062" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">599</ix:nonFraction></td>
      <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
     </tr>

    </tbody>
   </table>
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">The accompanying notes are an integral part of these consolidated financial statements.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
  <div class="PGBK" style="width: 100%; margin-left: 0pt; margin-right: 0pt">
   <div class="PGFTR" style="text-align: center; width: 100%">
    <div class="hf-row">
     <div class="hf-cell PGNUM" style="margin: 0pt; text-align: center; font-size: 10pt; font-family: Times New Roman;">
       F-9
     </div>
    </div>
   </div>
   <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
   <div class="PGHDR" style="text-align: left; width: 100%">
    <div class="hf-row">
     <div class="hf-cell TOCLink" style="margin: 0pt; display: inline-block; text-align: left;">
      <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
     </div>
    </div>
   </div>
  </div>
  <p style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; margin: 0pt; text-align: left"><b>&#xa0;</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY AND SUBSIDIARIES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="notes" title="notes" href="#"></a>NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" id="c1763206" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">1.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>ORGANIZATION:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Northwest Pipe Company (collectively with its subsidiaries, the &#x201c;Company&#x201d;) is a leading manufacturer for water related infrastructure products. In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company produces high-quality precast and reinforced concrete products, Permalok&#xae; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and <em style="font: inherit;">one</em> of the largest offerings of fittings and specialized components. The Company provides solution-based products for a wide range of markets including water transmission and infrastructure, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. The Company&#x2019;s chief operating decision maker, its Chief Executive Officer, evaluates performance of the Company and makes decisions regarding allocation of resources based on total Company results. Therefore, the Company has determined that it operates in <span style="-sec-ix-hidden:c70014065">one</span> segment, Water Infrastructure. The Company has manufacturing facilities located in Portland, Oregon; Adelanto, California; Saginaw, Texas; Tracy, California; Parkersburg, West Virginia; Salt Lake City, Utah; Orem, Utah; St.&#xa0;George, Utah; St.&#xa0;Louis, Missouri; and San Luis R&#xed;o Colorado, Mexico.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Impact of </b><b>the </b><b>COVID-<em style="font: inherit;">19</em> </b><b>Pandemic</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#xa0;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2020, </em>the World Health Organization declared coronavirus disease <em style="font: inherit;">2019</em> (<em style="font: inherit;">&#x201c;COVID&#x2011;19&#x201d;</em>) a pandemic. The COVID-<em style="font: inherit;">19</em> pandemic has resulted in governments around the world implementing increasingly stringent measures to help control the spread of the virus, including quarantines, &#x201c;shelter in place&#x201d; and &#x201c;stay at home&#x201d; orders, travel restrictions, business curtailments, school closures, and other measures. In addition, governments and central banks in several parts of the world have enacted fiscal and monetary stimulus measures to counteract the economic impacts of the COVID-<em style="font: inherit;">19</em> pandemic.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Consistent with national guidelines and with state and local orders to date, the Company currently continues to operate its manufacturing facilities in the United States as it produces critical water infrastructure products. The Company has taken proactive and precautionary steps to ensure the safety of its employees, customers, and suppliers, including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In early <em style="font: inherit;"> April 2020, </em>the Company was ordered to close its water infrastructure manufacturing facility in San Luis R&#xed;o Colorado, Mexico (&#x201c;SLRC&#x201d;) as a result of mandates made by Mexican authorities that companies that do <em style="font: inherit;">not</em> carry out essential activities in Mexico must suspend business operations in order to combat and eradicate the existence and transmission of COVID-<em style="font: inherit;">19.</em> The Company diverted orders on a case-by-case basis to its United States-based facilities during this closure. In early <em style="font: inherit;"> June 2020, </em>the Mexican authorities determined the SLRC facility was essential, and allowed weekly increases to the workforce. By <em style="font: inherit;"> July 2020, </em>operations at the SLRC facility were fully restored.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">While the COVID-<em style="font: inherit;">19</em> pandemic has <em style="font: inherit;">not</em> had a material adverse effect on the Company's reported results for the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company is unable to predict the ultimate impact that the COVID-<em style="font: inherit;">19</em> pandemic <em style="font: inherit;"> may </em>have on its business, future results of operations, financial position, or cash flows. The extent to which the Company's operations <em style="font: inherit;"> may </em>be impacted by the COVID-<em style="font: inherit;">19</em> pandemic will depend largely on future developments, which are highly uncertain and cannot be accurately predicted, including new information which <em style="font: inherit;"> may </em>emerge concerning the severity of the pandemic and actions by government authorities to contain the pandemic or treat its impact. Furthermore, the impacts on global and domestic economic conditions, including the long-term potential to reduce or delay funding of municipal projects, and the continued disruptions to and volatility in the financial markets remain unknown. The Company continues to monitor&#xa0;the impact of the COVID-<em style="font: inherit;">19</em> pandemic on all aspects of its business.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="c1763207" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">2.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ConsolidationPolicyTextBlock" id="c70017437" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Basis of Consolidation and Presentation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated. Certain amounts from the prior year financial statements have been reclassified in order to conform to the current year presentation.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">10</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PriorPeriodReclassificationAdjustmentDescription" id="c70017438" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Immaterial Correction of Error</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recorded revenue of $<ix:nonFraction id="c70014084" contextRef="d_2019-01-01_2019-03-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-OutOfPeriodAdjustmentMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">1.2</ix:nonFraction>&#xa0;million during the <em style="font: inherit;">three</em> and <em style="font: inherit;">twelve</em> months ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which should have been recorded in the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group,&#xa0;LLC (&#x201c;Ameron&#x201d;) facility. Management concluded that this out of period adjustment was <em style="font: inherit;">not</em> material to the consolidated financial results for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019</em> or <em style="font: inherit;">2018.</em></p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><em style="font: inherit;"></em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:UseOfEstimates" id="c70017439" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Use of Estimates</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;U.S.&#xa0;GAAP&#x201d;) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results <em style="font: inherit;"> may </em>differ from these estimates under different assumptions or conditions.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:BusinessCombinationsPolicy" id="c70017440" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Business Combinations</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related transaction costs are expensed as incurred.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances <em style="font: inherit;"> may </em>occur which <em style="font: inherit;"> may </em>affect the accuracy or validity of such estimates. As a result, during the measurement period, which <em style="font: inherit;"> may </em>be up to <em style="font: inherit;">one</em> year from the acquisition date, the Company <em style="font: inherit;"> may </em>record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the Company&#x2019;s Consolidated Statements of Operations.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="c70017441" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Cash and Cash Equivalents</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Cash and cash equivalents consist of cash and short-term, highly-liquid investments with maturities of <em style="font: inherit;">three</em> months or less when purchased.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ReceivablesPolicyTextBlock" id="c70017442" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Receivables and Allowance for Doubtful Accounts</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Trade receivables are reported on the Consolidated Balance Sheets net of doubtful accounts. The Company maintains allowances for estimated losses resulting from the inability of its customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#x2019;s judgment. The Company will write down or write off a receivable account once the account is deemed uncollectible. If the customers&#x2019; financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances <em style="font: inherit;"> may </em>need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" id="c70017443" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Contract Assets and Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Contract assets primarily represent revenue earned over time but <em style="font: inherit;">not</em> yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within <em style="font: inherit;">30</em>&#xa0;days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">11</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:InventoryPolicyTextBlock" id="c70017444" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Inventories</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Inventories are stated at the lower of cost and net realizable value. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the <em style="font: inherit;">first</em>-in, <em style="font: inherit;">first</em>-out method of accounting.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="c70017445" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Property and Equipment</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment are recorded at cost. Maintenance and repairs are expensed as incurred, and costs of new equipment and buildings, as well as costs of expansions or refurbishment of existing equipment and buildings, including interest where applicable, are capitalized. Depreciation and amortization are determined by the units of production method for most equipment and by the straight-line method for the remaining assets based on the estimated useful lives of the related assets. Estimated useful lives by major classes of property and equipment are as follows: Land improvements (<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MinimumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014124" format="ixt-sec:duryear">15</ix:nonNumeric>&#xa0;&#x2013; <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MaximumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014126" format="ixt-sec:duryear">30</ix:nonNumeric>&#xa0;years); Buildings (<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MinimumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014127" format="ixt-sec:duryear">20</ix:nonNumeric>&#xa0;&#x2013; <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MaximumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014128" format="ixt-sec:duryear">40</ix:nonNumeric>&#xa0;years); and Machinery and equipment (<ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014129" format="ixt-sec:duryear">3</ix:nonNumeric>&#xa0;&#x2013; <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="c70014130" format="ixt-sec:duryear">30</ix:nonNumeric>&#xa0;years). Depreciation expense calculated under the units of production method <em style="font: inherit;"> may </em>be less than, equal to, or greater than depreciation expense calculated under the straight-line method due to variances in production levels. Upon disposal, costs and related accumulated depreciation of the assets are removed from the accounts and resulting gains or losses are reflected in operating expenses. The Company leases certain equipment under long-term finance leases, which are being amortized on a straight-line basis over the shorter of its useful life or the lease term.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company assesses impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be recoverable. The asset group is the lowest level at which identifiable cash flows are largely independent of the cash flows of other groups of assets or liabilities. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about the expected future operating performance of the Company.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="c70017446" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Goodwill</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill represents the excess of purchase price over the assigned fair values of the assets and liabilities assumed in conjunction with an acquisition. Goodwill is reviewed for impairment annually as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> or whenever events occur or circumstances change that indicate goodwill <em style="font: inherit;"> may </em>be impaired. In testing goodwill for impairment, the Company has the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-<em style="font: inherit;">not</em> (more than <em style="font: inherit;">50%</em>) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, the Company evaluates factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. If the qualitative assessment indicates that it is more-likely-than-<em style="font: inherit;">not</em> that the fair value of the reporting unit is less than its carrying amount, or if the Company chooses <em style="font: inherit;">not</em> to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#x2019;s fair value. If the reporting unit&#x2019;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#x2019;s fair value, <em style="font: inherit;">not</em> to exceed the total amount of goodwill allocated to the reporting unit.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" id="c70017447" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Intangible Assets</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Intangible assets consist primarily of customer relationships and trade names and trademarks recorded as the result of acquisition activity. Intangible assets are amortized using the straight-line method over estimated useful lives ranging from <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_RangeAxis-MinimumMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="c70014138" format="ixt-sec:duryear">3</ix:nonNumeric>&#xa0;to <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_RangeAxis-MaximumMember" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="c70014139" format="ixt-sec:duryear">15</ix:nonNumeric>&#xa0;years.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:WorkersCompensationInsurancePolicyTextBlock" id="c70017448" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Workers Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company is self-insured, or maintains high deductible policies, for losses and liabilities associated with workers compensation claims. Losses are accrued based upon the Company&#x2019;s estimates of the aggregate liability for claims incurred using historical experience and certain actuarial assumptions followed in the insurance industry. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> workers compensation reserves recorded were $<ix:nonFraction id="c70014143" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.7</ix:nonFraction>&#xa0;million, of which $<ix:nonFraction id="c70014145" contextRef="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">0.2</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014146" contextRef="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">0.3</ix:nonFraction>&#xa0;million, respectively, were included in Accrued liabilities and $<ix:nonFraction id="c70014147" contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.5</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014148" contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.4</ix:nonFraction>&#xa0;million, respectively, were included in Other long-term liabilities.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">12</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:AccruedLiabilitiesPolicyTextBlock" id="c70017449" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accrued Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Accrued liabilities consist of the following (in thousands):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
    <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="c1763208" escape="true">
     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Accrued liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued bonus</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014246" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccruedBonusesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">3,747</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014247" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccruedBonusesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">3,977</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued vacation payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014248" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccruedVacationCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">2,328</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014249" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccruedVacationCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">2,263</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014250" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DerivativeLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-4">1,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014251" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DerivativeLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">138</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);" class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014252" contextRef="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">375</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014253" contextRef="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-4">420</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Workers compensation reserves</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014254" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">237</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014255" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:WorkersCompensationLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">269</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014256" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">8,977</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014257" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OtherAccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">5,083</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014258" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">16,814</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014259" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccruedLiabilitiesCurrent" scale="3" format="ixt:numdotdecimal" decimals="-4">12,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
    </ix:nonNumeric> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DerivativesPolicyTextBlock" id="c70017450" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Derivative Instruments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company conducts business in various foreign countries and, from time to time, settles transactions in foreign currencies. The Company has established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with the Company&#x2019;s strategy for financial risk management. The Company utilizes cash flow hedge accounting treatment for qualifying foreign currency forward contracts. Instruments that do <em style="font: inherit;">not</em> qualify for cash flow hedge accounting treatment are remeasured at fair value on each balance sheet date and resulting gains and losses are recognized in earnings.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PensionAndOtherPostretirementPlansPensionsPolicy" id="c70017451" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Pension Benefits</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <em style="font: inherit;">two</em> defined benefit pension plans that have been frozen since <em style="font: inherit;">2001.</em> The Company funds these plans to cover current plan costs plus amortization of the unfunded plan liabilities. To record these obligations, management uses estimates relating to investment returns, mortality, and discount rates.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="c70017452" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Foreign Currency Transactions</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The functional currency of the Company, including its Mexican operations, is the United States dollar. Monetary assets and liabilities are remeasured at current exchange rates and non-monetary assets and liabilities are remeasured at historical exchange rates. Revenue and expenses related to monetary assets and liabilities are remeasured at average exchange rates and at historical exchange rates for the revenue and expenses related to non-monetary assets and liabilities.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Transaction gains (losses) from foreign currency forward contracts designated as cash flow hedges are included in Accumulated other comprehensive loss as a separate component of Stockholders&#x2019; equity. For the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> net foreign currency transaction gains (losses) of $(<ix:nonFraction id="c70014157" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ForeignCurrencyTransactionGainLossRealized" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">1.1</ix:nonFraction>)&#xa0;million, $<ix:nonFraction id="c70014158" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ForeignCurrencyTransactionGainLossRealized" scale="6" format="ixt:numdotdecimal" decimals="-5">0.5</ix:nonFraction>&#xa0;million, and $(<ix:nonFraction id="c70014159" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ForeignCurrencyTransactionGainLossRealized" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.4</ix:nonFraction>)&#xa0;million, respectively, were recognized in earnings.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:RevenueRecognitionPolicyTextBlock" id="c70017453" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Revenue Recognition</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company&#x2019;s contracts with its customers contains a single performance obligation, as the promise to transfer products is <em style="font: inherit;">not</em> separately identifiable from other promises in the contract and, therefore, is <em style="font: inherit;">not</em> distinct.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
    <ix:exclude>
     <div class="PGFTR" style="text-align: center; width: 100%">
      <div class="hf-row">
       <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
         F-
        <em style="font: inherit;">13</em>
       </div>
      </div>
     </div>
     <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
     <div class="PGHDR" style="text-align: left; width: 100%">
      <div class="hf-row">
       <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
        <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
       </div>
      </div>
     </div>
    </ix:exclude> <ix:exclude>&#xa0;</ix:exclude> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company&#x2019;s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have <em style="font: inherit;">no</em> alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements <em style="font: inherit;"> may </em>result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that <em style="font: inherit;"> may </em>affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. The Company's contracts do <em style="font: inherit;">not</em> contain significant financing.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company does <em style="font: inherit;">not</em> recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="c70017454" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Share-based Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of restricted stock units (&#x201c;RSUs&#x201d;) and performance share awards (&#x201c;PSAs&#x201d;) using the value of the Company&#x2019;s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately <em style="font: inherit;">not</em> met.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:IncomeTaxPolicyTextBlock" id="c70017455" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Income Taxes</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future income tax consequences of events that have been recognized in the Company&#x2019;s financial statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of the provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. The provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company records income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. The Company assesses income tax positions and records income tax benefits for all years subject to examination based upon management&#x2019;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, the largest amount of income tax benefit with a greater than <em style="font: inherit;">50%</em> likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information has been recorded. For those income tax positions where it is <em style="font: inherit;">not</em> more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, <em style="font: inherit;">no</em> income tax benefit has been recognized in the Consolidated Financial Statements.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="c70017456" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accumulated Other Comprehensive Loss</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accumulated other comprehensive loss includes unrealized gains and losses on derivative instruments related to the effective portion of cash flow hedges and changes in the funded status of the defined benefit pension plans, both net of the related income tax effect.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">14</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:EarningsPerSharePolicyTextBlock" id="c70017457" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Net Income per Share</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all potential shares of common stock, including stock options, RSUs, and PSAs, to the extent dilutive. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
    <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" id="c1763209" escape="true">
     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014260" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-4">19,050</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014261" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,902</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014262" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">20,312</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014263" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,788</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014264" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,741</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014265" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" scale="3" format="ixt:numdotdecimal" decimals="-3">9,726</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effect of potentially dilutive common shares <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014266" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" format="ixt:numdotdecimal" decimals="-3">85</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014267" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" format="ixt:numdotdecimal" decimals="-3">38</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014268" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" scale="3" format="ixt:numdotdecimal" decimals="-3">7</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014269" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,873</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014270" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,779</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014271" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" scale="3" format="ixt:numdotdecimal" decimals="-3">9,733</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income per common share</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014273" contextRef="d_2020-01-01_2020-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">1.95</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014274" contextRef="d_2019-01-01_2019-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">2.86</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014275" contextRef="d_2018-01-01_2018-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareBasic" scale="0" format="ixt:numdotdecimal" decimals="INF">2.09</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014276" contextRef="d_2020-01-01_2020-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">1.93</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014277" contextRef="d_2019-01-01_2019-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">2.85</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014278" contextRef="d_2018-01-01_2018-12-31" unitRef="USDPerShare" name="us-gaap:EarningsPerShareDiluted" scale="0" format="ixt:numdotdecimal" decimals="INF">2.09</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
    </ix:nonNumeric> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
    <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">There were <ix:nonFraction id="c70014174" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> antidilutive shares for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> or <em style="font: inherit;">2019.</em> The weighted-average number of antidilutive shares <em style="font: inherit;">not</em> included in the computation of diluted net income per share was approximately&#xa0;<ix:nonFraction id="c70014180" contextRef="d_2018-01-01_2018-12-31" unitRef="Share" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" format="ixt:numdotdecimal" decimals="INF">63,000</ix:nonFraction> for the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> including approximately&#xa0;<ix:nonFraction id="c70014183" contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="Share" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" format="ixt:numdotdecimal" decimals="INF">39,000</ix:nonFraction> of PSAs, at the target level of <ix:nonFraction id="c70014184" contextRef="i_2019-12-31" unitRef="Pure" name="nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" scale="-2" format="ixt:numdotdecimal" decimals="0">100</ix:nonFraction>%, that were <em style="font: inherit;">not</em> included because the performance conditions had <em style="font: inherit;">not</em> been met as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em></p></td></tr>
</tbody></table></ix:nonNumeric>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td><p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><em style="font: inherit;"></em></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ConcentrationRiskCreditRisk" id="c70017458" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Concentrations of Credit Risk</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <span style="-sec-ix-hidden:c70014191"><span style="-sec-ix-hidden:c70014192">one</span></span> customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable, and a different customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> Foreign currency forward contracts are with a high quality financial institution. The Company&#x2019;s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b></b></p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="c70017459" escape="true"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Recent Accounting and Reporting Developments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Accounting Changes</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13,</em> &#x201c;Fair Value Measurement (Topic&#xa0;<em style="font: inherit;">820</em>): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Fair Value Measurement&#x201d; (&#x201c;ASU&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13&#x201d;</em>), which modifies the disclosure requirements for fair value measurements by removing, modifying, or adding certain disclosures. The Company adopted ASU&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13</em> on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2020</em> and the impact was <em style="font: inherit;">not</em> material to the Company&#x2019;s financial position, results of operations, or cash flows.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
    <ix:exclude>
     <div class="PGFTR" style="text-align: center; width: 100%">
      <div class="hf-row">
       <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
         F-
        <em style="font: inherit;">15</em>
       </div>
      </div>
     </div>
     <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
     <div class="PGHDR" style="text-align: left; width: 100%">
      <div class="hf-row">
       <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
        <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
       </div>
      </div>
     </div>
    </ix:exclude> <ix:exclude>&#xa0;</ix:exclude> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Recent Accounting Standards</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14,</em> &#x201c;Compensation&#x2014;Retirement Benefits&#x2014;Defined Benefit Plans&#x2014;General (Topic&#xa0;<em style="font: inherit;">715</em>-<em style="font: inherit;">20</em>): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Defined Benefit Plans&#x201d; (&#x201c;ASU&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14&#x201d;</em>), which modifies the disclosure requirements for employers that sponsor defined benefit pension or other postretirement plans by removing and adding certain disclosures for these plans. The eliminated disclosures include the amounts in accumulated other comprehensive income expected to be recognized in net periodic benefit costs over the next fiscal year and the amount and timing of plan assets expected to be returned to the employer. The new disclosures include an explanation of significant gains and losses related to changes in benefit obligations. ASU&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14</em> is effective for the Company beginning <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted, and will be adopted on a retrospective basis. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2019, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12,</em> &#x201c;Income Taxes (Topic&#xa0;<em style="font: inherit;">740</em>): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU&#xa0;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12&#x201d;</em>), which simplifies the accounting for income taxes by removing certain exceptions to the general principles in Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic&#xa0;<em style="font: inherit;">740,</em> &#x201c;Income Taxes&#x201d; (&#x201c;Topic&#xa0;<em style="font: inherit;">740&#x201d;</em>). ASU&#xa0;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> also improves consistent application of and simplifies U.S. GAAP for other areas of Topic&#xa0;<em style="font: inherit;">740</em> by clarifying and amending existing guidance. ASU&#xa0;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> is effective for the Company beginning <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2020, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2020</em>-<em style="font: inherit;">04,</em> &#x201c;Reference Rate Reform (Topic&#xa0;<em style="font: inherit;">848</em>): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#x201d; which provides optional expedients and exceptions for applying U.S. GAAP to contracts, hedging relationships, and other transactions affected by the discontinuation of the London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) or by another reference rate expected to be discontinued. The guidance was effective beginning <em style="font: inherit;"> March 12, 2020 </em>and can be applied prospectively through <em style="font: inherit;"> December 31, 2022. </em>In <em style="font: inherit;"> January 2021, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2021</em>-<em style="font: inherit;">01,</em> &#x201c;Reference Rate Reform - Scope,&#x201d; which clarified the scope and application of the original guidance. The Company will adopt these standards when LIBOR is discontinued and does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p></ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"></p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="c1763210" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">3.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>BUSINESS COMBINATION</b><b>S</b><b>:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Geneva Pipe </b><b>and Precast </b><b>Company</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company completed the acquisition of <ix:nonFraction id="c70014282" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="Pure" name="us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired" scale="-2" format="ixt:numdotdecimal" decimals="0">100</ix:nonFraction>% of Geneva Pipe and Precast Company (&#x201c;Geneva&#x201d;) (fka Geneva Pipe Company,&#xa0;Inc.) for a purchase price of $<ix:nonFraction id="c70014283" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" format="ixt:numdotdecimal" decimals="-5">49.4</ix:nonFraction>&#xa0;million in cash. Geneva is a concrete pipe and precast concrete products manufacturer based in Utah. This acquisition expanded the Company&#x2019;s water infrastructure product capabilities by adding additional reinforced concrete pipe capacity and a full line of precast concrete products including storm drains and manholes, catch basins, vaults, and curb inlets as well as innovative lined products that extend the life of concrete pipe and manholes for sewer applications. Operations have continued with Geneva's previous management and workforce at the <em style="font: inherit;">three</em> Utah manufacturing facilities located in Salt Lake City, Orem, and St.&#xa0;George. Consistent with prior periods and considering the chief operating decision maker's evaluation of post-acquisition performance is based on total Company results, the Company continues to report as <ix:nonFraction id="c70014285" contextRef="d_2020-01-31_2020-01-31" unitRef="Pure" name="us-gaap:NumberOfOperatingSegments" scale="0" format="ixt-sec:numwordsen" decimals="INF">one</ix:nonFraction> segment.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">16</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" id="c60BBB1E3-BABE-4FC4-AD2B-3E33C78C5F14" escape="true" continuedAt="C891869F-68F4-47DE-BA16-AE03E0838893">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014336" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" scale="3" format="ixt:numdotdecimal" decimals="-3">691</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014337" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" scale="3" format="ixt:numdotdecimal" decimals="-3">7,089</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014338" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" scale="3" format="ixt:numdotdecimal" decimals="-3">5,673</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014339" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">356</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014340" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">9,096</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014341" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">21,684</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014342" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" scale="3" format="ixt:numdotdecimal" decimals="-3">11,165</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014343" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">55,754</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014345" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" scale="3" format="ixt:numdotdecimal" decimals="-3">1,395</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014346" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">1,189</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014347" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">20,454</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014348" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">5,343</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other long-term liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014349" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" scale="3" format="ixt:numdotdecimal" decimals="-3">939</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014350" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-4">29,320</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014351" contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:Goodwill" scale="3" format="ixt:numdotdecimal" decimals="-3">22,985</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014352" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" format="ixt:numdotdecimal" decimals="-3">49,419</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the remaining unallocated purchase consideration recorded as goodwill. As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> June&#xa0;</em><em style="font: inherit;">30,</em> <em style="font: inherit;">2020</em> which resulted in a $<ix:nonFraction id="c70014292" contextRef="d_2020-04-01_2020-06-30_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="nwpx:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.1</ix:nonFraction>&#xa0;million balance sheet reclassification between trade and other receivables and inventories.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the components of the intangible assets acquired and their estimated useful lives:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" id="c1763213" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Estimated </b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Useful Life</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Fair Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In years) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In thousands) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"><ix:nonNumeric contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="c70014370" format="ixt-sec:duryear">11.0</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014371" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" scale="3" format="ixt:numdotdecimal" decimals="-3">8,031</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"><ix:nonNumeric contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="c70014372" format="ixt-sec:duryear">10.0</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014373" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember" unitRef="USD" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" scale="3" format="ixt:numdotdecimal" decimals="-3">2,093</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Backlog</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"><ix:nonNumeric contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="c70014374" format="ixt-sec:duryear">0.9</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014375" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember" unitRef="USD" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" scale="3" format="ixt:numdotdecimal" decimals="-3">1,041</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"><ix:nonNumeric contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" id="c70014376" format="ixt-sec:duryear">9.9</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014377" contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:FinitelivedIntangibleAssetsAcquired1" scale="3" format="ixt:numdotdecimal" decimals="-3">11,165</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill arose from the acquisition of an assembled workforce, expansion of product offerings, and management&#x2019;s industry know-how. The Company does <em style="font: inherit;">not</em> expect the goodwill to be deductible for tax purposes.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company incurred transaction costs associated with this acquisition of $<ix:nonFraction id="c70014294" contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" format="ixt:numdotdecimal" decimals="-5">2.6</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014295" contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" format="ixt:numdotdecimal" decimals="-5">0.6</ix:nonFraction>&#xa0;million during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively. These transaction costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Geneva operations contributed net sales of $<ix:nonFraction id="c70014299" contextRef="d_2020-02-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" scale="6" format="ixt:numdotdecimal" decimals="-5">44.2</ix:nonFraction>&#xa0;million to the Company&#x2019;s continuing operations for the period from <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> to <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em> It is impracticable to determine the effect on net income as a substantial portion of Geneva has been integrated into the Company&#x2019;s ongoing operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">17</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Geneva had occurred on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisitions (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:BusinessAcquisitionProFormaInformationTextBlock" id="C499691D-681A-49C6-90E3-9182A50D12D5" escape="true" continuedAt="F533EA51-0F20-45F9-9257-9653BBF158E6">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014378" contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" format="ixt:numdotdecimal" decimals="-3">289,496</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014379" contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" format="ixt:numdotdecimal" decimals="-3">323,741</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014381" contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">22,025</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014382" contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">27,163</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does <em style="font: inherit;">not</em> necessarily indicate what the operating results would have been if the acquisition of Geneva had occurred on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Moreover, this information is <em style="font: inherit;">not</em> indicative of what the Company&#x2019;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Geneva. The pro forma amounts have been calculated after applying the Company&#x2019;s accounting policies and adjusting the results of Geneva to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Adjustments also include an increase of interest expense as if the Company&#x2019;s debt obtained in connection with the acquisition of Geneva had been outstanding since <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Ameron Water Transmission Group,</b><b>&#xa0;</b><b>LLC</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> July&#xa0;</em><em style="font: inherit;">27,</em> <em style="font: inherit;">2018,</em> the Company completed the acquisition of <ix:nonFraction id="c70014313" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="Pure" name="us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired" scale="-2" format="ixt:numdotdecimal" decimals="0">100</ix:nonFraction>% of Ameron Water Transmission Group,&#xa0;LLC for a purchase price of $<ix:nonFraction id="c70014314" contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="6" format="ixt:numdotdecimal" decimals="-5">38.1</ix:nonFraction>&#xa0;million in cash. Ameron was a major supplier of engineered welded steel pressure pipe and reinforced concrete pipe. In addition to strengthening the Company&#x2019;s position in the water infrastructure market, this acquisition expanded the Company's bar-wrapped concrete cylinder pipe capabilities and added reinforced concrete pipe and T-Lock&#xae;&#x2014;a proprietary polyvinyl chloride (PVC) lining for concrete pipe sewer applications&#x2014;to the Company&#x2019;s product portfolio. In connection with the acquisition, the Company acquired pipe facilities in Tracy, California and San Luis R&#xed;o Colorado, Mexico, as well as protective lining equipment in Brea, California. In <em style="font: inherit;"> December 2019, </em>the Company closed its leased facility in Brea, California.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of <em style="font: inherit;"> July&#xa0;</em><em style="font: inherit;">27,</em> <em style="font: inherit;">2018</em> (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:continuation id="C891869F-68F4-47DE-BA16-AE03E0838893">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014354" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" scale="3" format="ixt:numdotdecimal" decimals="-3">912</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014355" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" scale="3" format="ixt:numdotdecimal" decimals="-3">8,887</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014356" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">12,018</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014357" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" scale="3" format="ixt:numdotdecimal" decimals="-3">7,937</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014358" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">3,777</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014359" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">34,827</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014360" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" scale="3" format="ixt:numdotdecimal" decimals="-4">320</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014361" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">68,678</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014363" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" scale="3" format="ixt:numdotdecimal" decimals="-4">5,520</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014364" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">1,599</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014365" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">123</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014366" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">3,221</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014367" contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">10,463</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014368" contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount" scale="3" format="ixt:numdotdecimal" decimals="-4">20,080</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014369" contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationConsiderationTransferred1" scale="3" format="ixt:numdotdecimal" decimals="-3">38,135</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:continuation>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">18</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018</em> which resulted in a net decrease of the bargain purchase gain of $<ix:nonFraction id="c70014321" contextRef="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="nwpx:BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">1.8</ix:nonFraction>&#xa0;million. The adjustments primarily included reclassifications between balance sheet categories and a $<ix:nonFraction id="c70014322" contextRef="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="nwpx:BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" scale="6" format="ixt:numdotdecimal" decimals="-6" sign="-">2.0</ix:nonFraction>&#xa0;million reduction in inventories. The Company recorded <ix:nonFraction id="c70014323" contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> measurement period adjustments during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the excess of the aggregate net fair value of assets acquired and liabilities assumed over the fair value of consideration transferred as the purchase price recorded as a bargain purchase gain. When it became apparent there was a potential for a bargain purchase gain, management reviewed the Ameron assets acquired and liabilities assumed as well as the assumptions utilized in estimating their fair values. Upon completion of this reassessment, the Company concluded that recording a bargain purchase gain with respect to Ameron was appropriate and required under U.S.&#xa0;GAAP. The Company believes the seller was motivated to complete the transaction as part of an overall repositioning of its business.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company incurred transaction costs associated with this acquisition of $<ix:nonFraction id="c70014326" contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessCombinationAcquisitionRelatedCosts" scale="6" format="ixt:numdotdecimal" decimals="-5">2.6</ix:nonFraction>&#xa0;million during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em> These costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Ameron had occurred on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:continuation id="F533EA51-0F20-45F9-9257-9653BBF158E6">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, 2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 84%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014386" contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaRevenue" scale="3" format="ixt:numdotdecimal" decimals="-3">200,513</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014389" contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">15,102</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
</tbody></table>
   </ix:continuation>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does <em style="font: inherit;">not</em> necessarily indicate what the operating results would have been if the acquisition of Ameron had occurred on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Moreover, this information is <em style="font: inherit;">not</em> indicative of what the Company&#x2019;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Ameron. The pro forma amounts have been calculated after applying the Company&#x2019;s accounting policies and adjusting the results of Ameron to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition and remove the bargain purchase gain. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" id="c1763216" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">4.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>DISCONTINUED OPERATIONS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">26,</em> <em style="font: inherit;">2017,</em> the Company completed the sale of substantially all of the assets associated with the Company&#x2019;s manufacturing facility in Atchison, Kansas, including all of the real and tangible personal property located at the site of that manufacturing facility. Total consideration of $<ix:nonFraction id="c70014393" contextRef="i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember" unitRef="USD" name="us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration" scale="6" format="ixt:numdotdecimal" decimals="-5">37.2</ix:nonFraction>&#xa0;million in cash was paid by the buyer, resulting in a nominal gain recognized on the sale. Of the proceeds received, $<ix:nonFraction id="c70014394" contextRef="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUnitilFebruary2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember" unitRef="USD" name="us-gaap:EscrowDepositsRelatedToPropertySales" scale="6" format="ixt:numdotdecimal" decimals="-5">0.8</ix:nonFraction>&#xa0;million was placed in escrow until it was released in <em style="font: inherit;"> February 2018 </em>and $<ix:nonFraction id="c70014395" contextRef="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUntilDecember2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember" unitRef="USD" name="us-gaap:EscrowDepositsRelatedToPropertySales" scale="6" format="ixt:numdotdecimal" decimals="-5">3.7</ix:nonFraction>&#xa0;million was placed in escrow until it was released in <em style="font: inherit;"> December 2018. </em>In accordance with applicable accounting guidance, cash flows from the Company&#x2019;s discontinued operations are presented separately in the Consolidated Statements of Cash Flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">19</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
        &#xa0;
      </div>
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
        &#xa0;
      </div>
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
        &#xa0;
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:InventoryDisclosureTextBlock" id="c1763217" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: top;">
      <td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">5.</em></b></p> </td>
      <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>INVENTORIES:</b></p> </td>
     </tr>

    </tbody>
   </table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Inventories consist of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" id="c1763218" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="width: 68%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Raw materials</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014398" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventoryRawMaterialsNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">20,631</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014399" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventoryRawMaterialsNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">26,772</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Work-in-process</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014400" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">1,416</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014401" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">1,579</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finished goods</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014402" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventoryFinishedGoodsNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">5,489</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014403" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventoryFinishedGoodsNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">683</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Supplies</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014404" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventorySuppliesNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-3">1,641</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014405" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventorySuppliesNetOfReserves" scale="3" format="ixt:numdotdecimal" decimals="-4">1,620</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total inventories</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014406" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:InventoryNet" scale="3" format="ixt:numdotdecimal" decimals="-3">29,177</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014407" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:InventoryNet" scale="3" format="ixt:numdotdecimal" decimals="-3">30,654</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
      </tr>

     </tbody>
    </table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="c1763219" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">6.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>PROPERTY AND EQUIPMENT:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment, net consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="c1763220" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Land and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014418" contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">22,773</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014419" contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-4">22,480</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Buildings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014420" contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">47,663</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014421" contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">44,251</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Machinery and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014422" contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">127,679</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014423" contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">115,237</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Equipment under finance lease</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014424" contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">2,589</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014425" contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">2,081</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014426" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">200,704</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014427" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentGross" scale="3" format="ixt:numdotdecimal" decimals="-3">184,049</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014428" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">96,684</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014429" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">86,244</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014430" contextRef="i_2020-12-31" unitRef="USD" name="nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress" scale="3" format="ixt:numdotdecimal" decimals="-4">104,020</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014431" contextRef="i_2019-12-31" unitRef="USD" name="nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress" scale="3" format="ixt:numdotdecimal" decimals="-3">97,805</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Construction in progress</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014432" contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">6,164</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014433" contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,826</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Property and equipment, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014434" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">110,184</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014435" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="3" format="ixt:numdotdecimal" decimals="-3">99,631</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">All property and equipment is located in the United States, except for $<ix:nonFraction id="c70014409" contextRef="i_2020-12-31_StatementGeographicalAxis-MX" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="6" format="ixt:numdotdecimal" decimals="-5">20.3</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014410" contextRef="i_2019-12-31_StatementGeographicalAxis-MX" unitRef="USD" name="us-gaap:PropertyPlantAndEquipmentNet" scale="6" format="ixt:numdotdecimal" decimals="-5">19.8</ix:nonFraction>&#xa0;million of net property and equipment which is located in Mexico as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2018, </em>the Company sold its Monterrey, Mexico facility for net proceeds of $<ix:nonFraction id="c70014414" contextRef="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember" unitRef="USD" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="6" format="ixt:numdotdecimal" decimals="-5">2.7</ix:nonFraction>&#xa0;million, resulting in a gain of $<ix:nonFraction id="c70014415" contextRef="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember" unitRef="USD" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="6" format="ixt:numdotdecimal" decimals="-5">0.2</ix:nonFraction>&#xa0;million. In <em style="font: inherit;"> August 2018, </em>the Company sold property in Houston, Texas for net proceeds of $<ix:nonFraction id="c70014416" contextRef="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember" unitRef="USD" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" scale="6" format="ixt:numdotdecimal" decimals="-5">5.8</ix:nonFraction>&#xa0;million, resulting in a gain of $<ix:nonFraction id="c70014417" contextRef="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember" unitRef="USD" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="6" format="ixt:numdotdecimal" decimals="-5">2.8</ix:nonFraction>&#xa0;million.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock" id="c1763221" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">7.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>GOODWILL AND </b><b>INTANGIBLE ASSETS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Goodwill</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The changes in the carrying amount of goodwill for the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> were as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfGoodwillTextBlock" id="c1763222" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014447" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:Goodwill" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Acquisition of Geneva (Note 3)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014448" contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember" unitRef="USD" name="us-gaap:GoodwillAcquiredDuringPeriod" scale="3" format="ixt:numdotdecimal" decimals="-3">22,985</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014449" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:Goodwill" scale="3" format="ixt:numdotdecimal" decimals="-3">22,985</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company performed its annual goodwill impairment test as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> utilizing a qualitative analysis, and did <em style="font: inherit;">not</em> identify any potential impairment.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">20</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Intangible Assets</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Intangible assets consist of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="c1763223" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Gross Carrying</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Accumulated</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Intangible</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amortization</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Assets, Net</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2020</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014451" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">9,409</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014452" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">1,634</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014453" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">7,775</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014454" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">3,225</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014455" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-4">720</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014456" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">2,505</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014457" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">329</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014458" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">91</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014459" contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">238</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014460" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">12,963</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014461" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">2,445</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014462" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">10,518</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014464" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">1,378</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014465" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">827</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014466" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">551</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014467" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">1,132</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014468" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">452</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014469" contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-4">680</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014470" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-4">2,510</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014471" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">1,279</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014472" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,231</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">During the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> intangible assets increased primarily due to the acquisition of Geneva. See Note&#xa0;<em style="font: inherit;">3,</em> &#x201c;Business Combinations&#x201d; for additional information related to this transaction.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The estimated amortization expense for each of the next <em style="font: inherit;">five</em> years and thereafter is as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="c1763224" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014473" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" scale="3" format="ixt:numdotdecimal" decimals="-3">1,262</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014474" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" scale="3" format="ixt:numdotdecimal" decimals="-3">1,262</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014475" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" scale="3" format="ixt:numdotdecimal" decimals="-3">1,171</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014476" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" scale="3" format="ixt:numdotdecimal" decimals="-3">1,015</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014477" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" scale="3" format="ixt:numdotdecimal" decimals="-3">1,015</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014478" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" scale="3" format="ixt:numdotdecimal" decimals="-3">4,793</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total amortization expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014479" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">10,518</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DebtDisclosureTextBlock" id="c1763225" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">8.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>LINE OF CREDIT</b><b>&#xa0;AND LONG-TERM DEBT</b><b>:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#x2019;s Credit Agreement with Wells Fargo Bank, N.A. (&#x201c;Wells Fargo&#x201d;) dated <em style="font: inherit;"> October&#xa0;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2018</em> (&#x201c;Credit Agreement&#x201d;), as amended on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> by the Consent and Amendment <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">1</em> to Credit Agreement with Wells Fargo (collectively the &#x201c;Amended Credit Agreement&#x201d;) provides for a term loan, as well as letters of credit and revolving loans in the aggregate amount of up to $<ix:nonFraction id="c70014487" contextRef="i_2018-10-25_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity" scale="6" format="ixt:numdotdecimal" decimals="-6">74</ix:nonFraction>&#xa0;million, subject to a borrowing base (&#x201c;Revolver Commitment&#x201d;). The borrowing base is calculated by applying various advance rates to eligible accounts receivable, contract assets, inventories, and equipment, subject to various exclusions, adjustments, and sublimits. The Amended Credit Agreement will expire on <em style="font: inherit;"> October&#xa0;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2024.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Amended Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants, events of default, and indemnification provisions in favor of the lender. The negative covenants include restrictions regarding the incurrence of liens and indebtedness and certain acquisitions and dispositions of assets and other matters, all subject to certain exceptions. The Amended Credit Agreement also requires the Company to regularly provide financial information to Wells Fargo and to maintain a Senior Leverage Ratio (as defined in the Amended Credit Agreement) <em style="font: inherit;">not</em> greater than <ix:nonFraction id="c70014491" contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="nwpx:MaximumSeniorLeverageRatio" scale="0" format="ixt:numdotdecimal" decimals="INF">3.00</ix:nonFraction> and a Fixed Charge Coverage Ratio (as defined in the Amended Credit Agreement) of at least <ix:nonFraction id="c70014492" contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="nwpx:MinimumFixedChargeCoverageRatio" scale="0" format="ixt:numdotdecimal" decimals="INF">1.10</ix:nonFraction> to <em style="font: inherit;">1.00.</em> The Company was in compliance&#xa0;with its financial covenants as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company's obligations under the Amended Credit Agreement are secured by a security interest in certain real property owned by the Company and its subsidiaries and substantially all of Company&#x2019;s and its subsidiaries&#x2019; other assets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Interest expense from revolving loan borrowings, long-term debt, and finance leases was $<ix:nonFraction id="c70014496" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" scale="6" format="ixt:numdotdecimal" decimals="-5">0.9</ix:nonFraction>&#xa0;million, net of amounts capitalized of $<ix:nonFraction id="c70014497" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:InterestCostsCapitalized" scale="6" format="ixt:numdotdecimal" decimals="-5">0.1</ix:nonFraction>&#xa0;million in <em style="font: inherit;">2020,</em> $<ix:nonFraction id="c70014499" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" scale="6" format="ixt:numdotdecimal" decimals="-5">0.5</ix:nonFraction>&#xa0;million in <em style="font: inherit;">2019,</em> and $<ix:nonFraction id="c70014501" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" scale="6" format="ixt:numdotdecimal" decimals="-5">0.6</ix:nonFraction>&#xa0;million in <em style="font: inherit;">2018.</em> A nominal amount of interest was capitalized in <em style="font: inherit;">2019</em> and <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">21</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Line of Credit (Revolving Loan)</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company had <ix:nonFraction id="c70014508" contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LineOfCredit" scale="6" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> outstanding revolving loan borrowings and $<ix:nonFraction id="c70014509" contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million of outstanding letters of credit under the Amended Credit Agreement and additional revolving loan borrowing capacity of $<ix:nonFraction id="c70014510" contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity" scale="6" format="ixt:numdotdecimal" decimals="-6">53</ix:nonFraction>&#xa0;million. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019,</em> the Company had <ix:nonFraction id="c70014513" contextRef="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LineOfCredit" scale="6" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> outstanding borrowings under the Credit Agreement. Revolving loan borrowings under the Amended Credit Agreement bear interest at rates related to the daily <em style="font: inherit;">three</em> month LIBOR plus <ix:nonFraction id="c70014515" contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" unitRef="Pure" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" format="ixt:numdotdecimal" decimals="3">1.5</ix:nonFraction>% to <ix:nonFraction id="c70014516" contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" unitRef="Pure" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" format="ixt:numdotdecimal" decimals="2">2.0</ix:nonFraction>%. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the weighted-average interest rate for outstanding revolving loan borrowings was <ix:nonFraction id="c70014520" contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="us-gaap:DebtWeightedAverageInterestRate" scale="-2" format="ixt:numdotdecimal" decimals="4">1.73</ix:nonFraction>% and <ix:nonFraction id="c70014521" contextRef="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="us-gaap:DebtWeightedAverageInterestRate" scale="-2" format="ixt:numdotdecimal" decimals="4">3.43</ix:nonFraction>% respectively. The Amended Credit Agreement provides a mechanism for determining an alternative benchmark rate to the LIBOR, which <em style="font: inherit;"> may </em>include the Secured Overnight Financing Rate. The Amended Credit Agreement requires the payment of an unused line fee of between <ix:nonFraction id="c70014522" contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember" unitRef="Pure" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" format="ixt:numdotdecimal" decimals="4">0.25</ix:nonFraction>% and <ix:nonFraction id="c70014523" contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember" unitRef="Pure" name="us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" scale="-2" format="ixt:numdotdecimal" decimals="5">0.375</ix:nonFraction>%, based on the amount by which the Revolver Commitment exceeds the average daily balance of outstanding borrowings (as defined in the Amended Credit Agreement) during any month. Such fee is payable monthly in arrears.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Long-Term Debt</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Pursuant to the Amended Credit Agreement, on <em style="font: inherit;"> March&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company entered into a term loan for $<ix:nonFraction id="c70014526" contextRef="i_2020-03-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:DebtInstrumentFaceAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">15.9</ix:nonFraction>&#xa0;million with Wells Fargo that matures on <em style="font: inherit;"> October&#xa0;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2024</em> and bears interest at the daily <em style="font: inherit;">three</em> month LIBOR plus <ix:nonFraction id="c70014530" contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" unitRef="Pure" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" format="ixt:numdotdecimal" decimals="2">2.0</ix:nonFraction>% to <ix:nonFraction id="c70014531" contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember" unitRef="Pure" name="us-gaap:DebtInstrumentBasisSpreadOnVariableRate1" scale="-2" format="ixt:numdotdecimal" decimals="3">2.5</ix:nonFraction>%. The term loan requires monthly principal payments of $<ix:nonFraction id="c70014532" contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:DebtInstrumentPeriodicPayment" scale="6" format="ixt:numdotdecimal" decimals="-5">0.3</ix:nonFraction>&#xa0;million plus accrued interest. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the outstanding balance of the term loan was $<ix:nonFraction id="c70014535" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebt" scale="6" format="ixt:numdotdecimal" decimals="-5">13.8</ix:nonFraction>&#xa0;million. The Company is obligated to prepay the term loan to the extent that the outstanding principal balance at any time exceeds <ix:nonFraction id="c70014536" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="nwpx:DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" scale="-2" format="ixt:numdotdecimal" decimals="1">60</ix:nonFraction>% of the fair market value of specified real property securing the loan. The Company is also obligated to prepay the term loan in an amount equal to <ix:nonFraction id="c70014537" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="Pure" name="nwpx:DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" scale="-2" format="ixt:numdotdecimal" decimals="1">20</ix:nonFraction>% of Excess Cash Flow (as defined in the Amended Credit Agreement). The prepayment from Excess Cash Flow generated in <em style="font: inherit;">2020</em> that is required in <em style="font: inherit;">2021</em> is $<ix:nonFraction id="c70014540" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="nwpx:DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" scale="6" format="ixt:numdotdecimal" decimals="-5">4.6</ix:nonFraction> million. Subject to certain limitations, the Company <em style="font: inherit;"> may </em>also voluntarily prepay all or a portion of the loan balance upon <em style="font: inherit;">ten</em> business days&#x2019; written notice.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Future principal payments of long-term debt, which excludes prepayments for periods beyond <em style="font: inherit;">2021</em> that <em style="font: inherit;"> may </em>be required by Excess Cash Flow (as defined in the Amended Credit Agreement), are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" id="c1763226" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014543" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" scale="3" format="ixt:numdotdecimal" decimals="-3">7,746</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014544" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" scale="3" format="ixt:numdotdecimal" decimals="-3">3,176</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014545" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" scale="3" format="ixt:numdotdecimal" decimals="-4">2,840</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total future principal payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014546" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:DebtInstrumentCarryingAmount" scale="3" format="ixt:numdotdecimal" decimals="-3">13,762</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Unamortized debt issuance costs</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014547" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:DeferredFinanceCostsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">173</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Current portion of long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014548" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebtCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">7,701</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Long-term debt, net of current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014549" contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember" unitRef="USD" name="us-gaap:LongTermDebtNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">5,888</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:LesseeLeaseDisclosureTextBlock" id="c1763227" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b><em style="font: inherit;">9.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>LEASES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company adopted ASC Topic&#xa0;<em style="font: inherit;">842,</em> &#x201c;Leases&#x201d; (&#x201c;Topic&#xa0;<em style="font: inherit;">842&#x201d;</em>) on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2019</em> using the modified retrospective transition method which allowed it to continue to apply legacy guidance for periods prior to <em style="font: inherit;">2019.</em> The Company elected the package of transition practical expedients which, among other things, allowed it to keep the historical lease classifications and <em style="font: inherit;">not</em> reassess the lease classification for any existing leases as of the date of adoption. The Company also made an accounting policy election to apply the short-term lease exception, which allows it to keep leases with an initial term of <em style="font: inherit;">twelve</em> months or less off the balance sheet. Upon adoption of Topic&#xa0;<em style="font: inherit;">842,</em> the Company recognized right-of-use assets and lease liabilities for operating leases of approximately $<ix:nonFraction id="c70014559" contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member" unitRef="USD" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="6" format="ixt:numdotdecimal" decimals="-6">8.0</ix:nonFraction>&#xa0;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has entered into various equipment and property leases. Certain lease agreements include renewals and/or purchase options set to expire at various dates, and certain lease agreements include rental payments adjusted periodically for inflation. The Company&#x2019;s lease agreements do <em style="font: inherit;">not</em> contain any material residual value guarantees or material restrictive covenants.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company determines if an arrangement is a lease at inception. Leases with an initial term of <em style="font: inherit;">twelve</em> months or less are <em style="font: inherit;">not</em> recorded on the balance sheet; costs for these leases are recognized on a straight-line basis over the lease term. Right-of-use assets and lease liabilities are recognized based on the present value of lease payments over the lease term at commencement date. Because most of the Company's leases do <em style="font: inherit;">not</em> provide an implicit rate of return, the Company uses its asset-based lending rate in determining the present value of lease payments. Some of the Company&#x2019;s lease agreements contain non-lease components, which are accounted for separately.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">22</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the Company's leases recorded on the Consolidated Balance Sheets (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock" id="c1763228" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases, net, included in Property and equipment <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014584" contextRef="i_2020-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">1,288</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014585" contextRef="i_2019-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">1,203</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014586" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">30,813</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014587" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">7,683</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014588" contextRef="i_2020-12-31" unitRef="USD" name="nwpx:LeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">32,101</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014589" contextRef="i_2019-12-31" unitRef="USD" name="nwpx:LeaseRightOfUseAsset" scale="3" format="ixt:numdotdecimal" decimals="-3">8,886</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014591" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">1,729</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014592" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">1,641</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014593" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">30,115</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014594" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">7,889</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014595" contextRef="i_2020-12-31" unitRef="USD" name="nwpx:LeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">31,844</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014596" contextRef="i_2019-12-31" unitRef="USD" name="nwpx:LeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-4">9,530</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Finance lease right-of-use assets are presented net of accumulated amortization of $<ix:nonFraction id="c70014567" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization" scale="6" format="ixt:numdotdecimal" decimals="-5">1.3</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014568" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization" scale="6" format="ixt:numdotdecimal" decimals="-5">0.9</ix:nonFraction>&#xa0;million as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Lease cost consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:LeaseCostTableTextBlock" id="c1763229" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finance lease cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amortization of right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014598" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAssetAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">422</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014599" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeaseRightOfUseAssetAmortization" scale="3" format="ixt:numdotdecimal" decimals="-3">435</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Interest on lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014600" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseInterestExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">79</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014601" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeaseInterestExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">57</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Operating lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014602" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">3,647</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014603" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">1,934</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Short-term lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014604" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ShortTermLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">745</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014605" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ShortTermLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">1,442</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Variable lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014606" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:VariableLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">199</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014607" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:VariableLeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">141</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014608" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:LeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">5,092</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014609" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:LeaseCost" scale="3" format="ixt:numdotdecimal" decimals="-3">4,009</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As the Company has <em style="font: inherit;">not</em> restated prior-year information for the adoption of Topic&#xa0;<em style="font: inherit;">842,</em> total operating lease rental expense under ASC&#xa0;Topic&#xa0;<em style="font: inherit;">840,</em> &#x201c;Leases&#x201d; for the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018</em> was $<ix:nonFraction id="c70014577" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:OperatingLeasesRentExpenseNet" scale="6" format="ixt:numdotdecimal" decimals="-5">2.7</ix:nonFraction>&#xa0;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The future maturities of lease liabilities as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:LesseeLiabilityMaturityTableTextBlock" id="c1763230" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Finance Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Operating Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014610" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" format="ixt:numdotdecimal" decimals="-3">454</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014611" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" scale="3" format="ixt:numdotdecimal" decimals="-3">3,178</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014612" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo" scale="3" format="ixt:numdotdecimal" decimals="-3">433</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014613" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" scale="3" format="ixt:numdotdecimal" decimals="-3">2,819</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014614" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree" scale="3" format="ixt:numdotdecimal" decimals="-4">230</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014615" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" scale="3" format="ixt:numdotdecimal" decimals="-3">2,561</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014616" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour" scale="3" format="ixt:numdotdecimal" decimals="-3">544</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014617" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" scale="3" format="ixt:numdotdecimal" decimals="-3">2,416</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014618" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive" scale="3" format="ixt:numdotdecimal" decimals="-3">301</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014619" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" scale="3" format="ixt:numdotdecimal" decimals="-3">2,358</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014620" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014621" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" scale="3" format="ixt:numdotdecimal" decimals="-3">27,513</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total lease payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014622" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityPaymentsDue" scale="3" format="ixt:numdotdecimal" decimals="-3">1,962</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014623" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" scale="3" format="ixt:numdotdecimal" decimals="-3">40,845</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amount representing interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014624" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount" scale="3" format="ixt:numdotdecimal" decimals="-3">233</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014625" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" scale="3" format="ixt:numdotdecimal" decimals="-4">10,730</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Present value of lease liabilities</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014626" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">1,729</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014627" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">30,115</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Current portion of lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014628" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">375</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014629" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityCurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">2,204</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Long-term lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014630" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseLiabilityNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">1,354</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014631" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeaseLiabilityNoncurrent" scale="3" format="ixt:numdotdecimal" decimals="-3">27,911</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Current portion of finance lease liabilities are included in Accrued liabilities.</p> </td></tr>
</tbody></table>
   <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">2</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">23</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The following table summarizes the lease terms and discount rates for the lease liabilities:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" id="c1763231" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average remaining lease term (years)</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonNumeric contextRef="i_2020-12-31" name="us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1" id="c70014633" format="ixt-sec:duryear">3.67</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonNumeric contextRef="i_2019-12-31" name="us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1" id="c70014634" format="ixt-sec:duryear">3.79</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonNumeric contextRef="i_2020-12-31" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="c70014635" format="ixt-sec:duryear">18.21</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonNumeric contextRef="i_2019-12-31" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" id="c70014636" format="ixt-sec:duryear">8.31</ix:nonNumeric></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average discount rate</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014638" contextRef="i_2020-12-31" unitRef="Pure" name="us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent" scale="-2" format="ixt:numdotdecimal" decimals="4">5.22</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014639" contextRef="i_2019-12-31" unitRef="Pure" name="us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent" scale="-2" format="ixt:numdotdecimal" decimals="3">5.40</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014640" contextRef="i_2020-12-31" unitRef="Pure" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" format="ixt:numdotdecimal" decimals="4">3.36</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014641" contextRef="i_2019-12-31" unitRef="Pure" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" format="ixt:numdotdecimal" decimals="3">4.50</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The following table presents other information related to the operating and finance leases (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" id="c1763232" escape="true">
    <table cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px; margin-left: 0pt; margin-right: 0pt;"><tbody><tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014643" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeaseInterestPaymentOnLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">79</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014644" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeaseInterestPaymentOnLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">57</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014645" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:OperatingLeasePayments" scale="3" format="ixt:numdotdecimal" decimals="-3">3,481</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014646" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:OperatingLeasePayments" scale="3" format="ixt:numdotdecimal" decimals="-3">1,909</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financing cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014647" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" format="ixt:numdotdecimal" decimals="-4">420</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014648" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:FinanceLeasePrincipalPayments" scale="3" format="ixt:numdotdecimal" decimals="-3">434</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014649" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">507</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014650" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">819</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014651" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">4,471</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014652" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" scale="3" format="ixt:numdotdecimal" decimals="-3">1,335</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:FairValueDisclosuresTextBlock" id="c1763233" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">10.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>FAIR VALUE MEASUREMENTS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into <em style="font: inherit;">three</em> broad levels. These levels are: Level&#xa0;<em style="font: inherit;">1</em> (inputs are quoted prices in active markets for identical assets or liabilities); Level&#xa0;<em style="font: inherit;">2</em> (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level&#xa0;<em style="font: inherit;">3</em> (inputs are unobservable, with little or <em style="font: inherit;">no</em> market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes information regarding the Company&#x2019;s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="c1763234" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">&#xa0;</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 1</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 2</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 3</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>As of December 31, 2020</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014672" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">4,717</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014673" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">3,884</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014674" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">833</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014675" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014677" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-4">1,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014678" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014679" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-4">1,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014680" contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#xa0;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014683" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-4">5,150</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014684" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">4,268</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014685" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">882</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014686" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member" unitRef="USD" name="us-gaap:DeferredCompensationPlanAssets" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014688" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">138</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014689" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70014690" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">138</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014691" contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member" unitRef="USD" name="us-gaap:DerivativeLiabilities" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">24</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level&#xa0;<em style="font: inherit;">1</em> within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level&#xa0;<em style="font: inherit;">2</em> within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Consolidated Balance Sheets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#x2019;s foreign currency forward contracts are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level&#xa0;<em style="font: inherit;">2</em> within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. Foreign currency forward contracts are presented at their gross fair values. Foreign currency forward contract assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Consolidated Balance Sheets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and revolving loan borrowings approximate fair value due to the short-term nature of these instruments. The Company is obligated to repay the carrying value of the Company&#x2019;s long-term debt. The fair value of the Company&#x2019;s long-term debt is calculated using interest rates for the Company&#x2019;s existing debt arrangements which are classified as Level&#xa0;<em style="font: inherit;">2</em> inputs within the fair value hierarchy. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the fair value of the Company&#x2019;s long-term debt approximates the carrying value as the borrowings bear interest based on current market rates.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="c1763235" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">11.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>DERIVATIVE INSTRUMENTS AND HEDGING ACTIVITIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">For each foreign currency forward contract entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument&#x2019;s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all foreign currency forward contracts to specific firm commitments or forecasted transactions and designating the foreign currency forward contracts as cash flow hedges. The Company also formally assesses, both at the hedge&#x2019;s inception and on an ongoing basis, whether the foreign currency forward contracts that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Consolidated Statements of Comprehensive Income. If it is determined that a foreign currency forward contract is <em style="font: inherit;">not</em> highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that foreign currency forward contract prospectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the total notional amount of the foreign currency forward contracts designated as cash flow hedges was $<ix:nonFraction id="c70014697" contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" unitRef="USD" name="us-gaap:DerivativeNotionalAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">15.3</ix:nonFraction>&#xa0;million (<span style="-sec-ix-hidden:c70014698">CAD$19.5</span>&#xa0;million) and $<ix:nonFraction id="c70014699" contextRef="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember" unitRef="USD" name="us-gaap:DerivativeNotionalAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">6.1</ix:nonFraction>&#xa0;million (<span style="-sec-ix-hidden:c70014700">CAD$7.9</span>&#xa0;million), respectively. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company's foreign currency forward contracts mature at various dates through <em style="font: inherit;"> May 2022 </em>and are subject to an enforceable master netting arrangement.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> all foreign currency forward contracts were designated as cash flow hedges. For the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> gains (losses) recognized in Net sales from foreign currency forward contracts <em style="font: inherit;">not</em> designated as hedging instruments were $(<ix:nonFraction id="c70014711" contextRef="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember" unitRef="USD" name="us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.6</ix:nonFraction>)&#xa0;million, $(<ix:nonFraction id="c70014712" contextRef="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember" unitRef="USD" name="us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.1</ix:nonFraction>)&#xa0;million, and $<ix:nonFraction id="c70014713" contextRef="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember" unitRef="USD" name="us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" scale="6" format="ixt:numdotdecimal" decimals="-5">0.2</ix:nonFraction>&#xa0;million, respectively. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> unrealized pretax losses on outstanding foreign currency forward contracts in Accumulated other comprehensive loss was $(<ix:nonFraction id="c70014716" contextRef="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember" unitRef="USD" name="us-gaap:UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" scale="6" format="ixt:numdotdecimal" decimals="-5">0.1</ix:nonFraction>)&#xa0;million, of which approximately $<ix:nonFraction id="c70014717" contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember" unitRef="USD" name="us-gaap:ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction> is expected to be reclassified to Net sales within the next <em style="font: inherit;">twelve</em> months as a result of underlying hedged transactions also being recorded in Net sales. See Note&#xa0;<em style="font: inherit;">17,</em> &#x201c;Accumulated Other Comprehensive Loss&#x201d; for additional quantitative information regarding foreign currency forward contract gains and losses.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="c1763236" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">12.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>RETIREMENT PLANS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Defined Contribution Plan</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has a defined contribution retirement plan that covers substantially all of its employees and provides for a Company match of up to <ix:nonFraction id="c70014725" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" scale="-2" format="ixt:numdotdecimal" decimals="1">50</ix:nonFraction>% of the <em style="font: inherit;">first</em> <ix:nonFraction id="c70014727" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" scale="-2" format="ixt:numdotdecimal" decimals="2">8</ix:nonFraction>%, <ix:nonFraction id="c70014728" contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" scale="-2" format="ixt:numdotdecimal" decimals="2">6</ix:nonFraction>%, and <ix:nonFraction id="c70014729" contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" scale="-2" format="ixt:numdotdecimal" decimals="2">6</ix:nonFraction>% of employee contributions to the plan, subject to certain limitations, for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively. The defined contribution retirement plan offers <ix:nonFraction id="c70014734" contextRef="i_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember" unitRef="Pure" name="nwpx:DefinedContributionPlanNumberOfInvestmentOptions" scale="0" format="ixt:numdotdecimal" decimals="INF">23</ix:nonFraction>&#xa0;investment options.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">25</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Defined Benefit Plans</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <span style="-sec-ix-hidden:c70014736">two</span> noncontributory defined benefit plans. Effective <em style="font: inherit;">2001,</em> both plans were frozen and participants were fully vested in their accrued benefits as of the date each plan was frozen. <em style="font: inherit;">No</em> additional participants can be added to the plans and <em style="font: inherit;">no</em> additional service can be earned by participants subsequent to the date the plans were frozen. The funding policy for both of these plans is based on current plan costs plus amortization of the unfunded plan liability. All current employees covered by these plans are now covered by the defined contribution retirement plan.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the Company had recorded, in accordance with the actuarial valuations, an accrued pension liability of $<ix:nonFraction id="c70014743" contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million in Other long-term liabilities and an unrecognized actuarial loss, net of tax, of $<ix:nonFraction id="c70014745" contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" scale="6" format="ixt:numdotdecimal" decimals="-5">1.8</ix:nonFraction>&#xa0;million&#xa0;in Accumulated other comprehensive loss. Additionally, as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the projected and accumulated benefit obligation was $<ix:nonFraction id="c70014750" contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation" scale="6" format="ixt:numdotdecimal" decimals="-5">6.5</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014751" contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation" scale="6" format="ixt:numdotdecimal" decimals="-5">6.4</ix:nonFraction>&#xa0;million, respectively, and the fair value of plan assets was $<ix:nonFraction id="c70014752" contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanFairValueOfPlanAssets" scale="6" format="ixt:numdotdecimal" decimals="-5">4.9</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014753" contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanFairValueOfPlanAssets" scale="6" format="ixt:numdotdecimal" decimals="-5">4.8</ix:nonFraction>&#xa0;million, respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The net periodic benefit cost for each of the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was approximately&#xa0;$<ix:nonFraction id="c70014758" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="USD" name="us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>. The weighted-average discount rates used to measure the projected benefit obligation were <ix:nonFraction id="c70014761" contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="Pure" name="us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" scale="-2" format="ixt:numdotdecimal" decimals="4">2.04</ix:nonFraction>% and <ix:nonFraction id="c70014762" contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="Pure" name="us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" scale="-2" format="ixt:numdotdecimal" decimals="4">2.83</ix:nonFraction>% as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The plan assets are invested in pooled separate accounts stated at fair value based on the daily net asset value of the account and are therefore <em style="font: inherit;">not</em> categorized in the fair value hierarchy. The expected weighted-average long-term rate of return on plan assets was <ix:nonFraction id="c70014767" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="Pure" name="us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" scale="-2" format="ixt:numdotdecimal" decimals="2">7.0</ix:nonFraction>% and <ix:nonFraction id="c70014768" contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember" unitRef="Pure" name="us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" scale="-2" format="ixt:numdotdecimal" decimals="3">7.5</ix:nonFraction>% as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Non-qualified Retirement Savings Plan</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has a deferred compensation plan that covered officers and selected highly compensated employees until it was frozen in <em style="font: inherit;">2016.</em> The deferred compensation plan generally matched up to <ix:nonFraction id="c70014773" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="Pure" name="nwpx:CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" scale="-2" format="ixt:numdotdecimal" decimals="1">50</ix:nonFraction>% of the <em style="font: inherit;">first</em> $<ix:nonFraction id="c70014776" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="nwpx:OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" scale="0" format="ixt:numdotdecimal" decimals="INF">10,000</ix:nonFraction> of officer contributions to the plan and the <em style="font: inherit;">first</em> $<ix:nonFraction id="c70014780" contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="nwpx:SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" scale="0" format="ixt:numdotdecimal" decimals="INF">5,000</ix:nonFraction> of other selected highly compensated employee contributions, subject to certain limitations. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> deferred compensation plan balances of $<ix:nonFraction id="c70014784" contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">4.7</ix:nonFraction>&#xa0;million and $<ix:nonFraction id="c70014785" contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember" unitRef="USD" name="us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">5.2</ix:nonFraction>&#xa0;million, respectively, were recorded in Other assets and Other long-term liabilities.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Total expense for all retirement plans for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was $<ix:nonFraction id="c70014790" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:RetirementPlanExpense" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million, $<ix:nonFraction id="c70014791" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:RetirementPlanExpense" scale="6" format="ixt:numdotdecimal" decimals="-5">1.2</ix:nonFraction>&#xa0;million, and $<ix:nonFraction id="c70014792" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:RetirementPlanExpense" scale="6" format="ixt:numdotdecimal" decimals="-5">0.9</ix:nonFraction>&#xa0;million, respectively.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="c1763237" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">13.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>SHARE-BASED COMPENSATION:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <span style="-sec-ix-hidden:c70014794">one</span> active stock incentive plan for employees and directors, the <em style="font: inherit;">2007</em> Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, RSUs, and PSAs.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes share-based compensation expense recorded (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="c1763238" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cost of sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014886" contextRef="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-CostOfSalesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">822</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014887" contextRef="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-CostOfSalesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">383</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014888" contextRef="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-CostOfSalesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">12</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Selling, general, and administrative expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014889" contextRef="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">2,266</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014890" contextRef="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">1,326</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70014891" contextRef="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">269</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014892" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">3,088</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014893" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">1,709</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014894" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:AllocatedShareBasedCompensationExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">281</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">There were <ix:nonFraction id="c70014796" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:CommonStockCapitalSharesReservedForFutureIssuance" scale="0" format="ixt:numdotdecimal" decimals="INF">354,022</ix:nonFraction>&#xa0;shares of common stock available for future issuance under the Company&#x2019;s stock incentive plan as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> assuming the outstanding PSAs vest at the target level of <ix:nonFraction id="c70014799" contextRef="i_2020-12-31" unitRef="Pure" name="nwpx:CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" scale="-2" format="ixt:numdotdecimal" decimals="0">100</ix:nonFraction>%.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">26</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Stock Options Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#x2019;s stock incentive plan&#xa0;provides that options become exercisable according to vesting schedules, which range from immediate to ratably over a <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="c70014801" format="ixt-sec:durmonth">60</ix:nonNumeric>-month period. Options terminate <span style="-sec-ix-hidden:c70014802">ten</span> years from the date of grant. There were <ix:nonFraction id="c70014803" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> options granted during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> or <em style="font: inherit;">2018.</em> During the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <ix:nonFraction id="c70014812" contextRef="d_2020-01-01_2020-12-31" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" format="ixt:numdotdecimal" decimals="INF">24,000</ix:nonFraction> stock options at a weighted-average exercise price of $<ix:nonFraction id="c70014813" contextRef="d_2020-01-01_2020-12-31" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" format="ixt:numdotdecimal" decimals="INF">24.15</ix:nonFraction> were exercised. The total intrinsic value of options exercised during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> was $<ix:nonFraction id="c70014816" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" scale="6" format="ixt:numdotdecimal" decimals="-5">0.1</ix:nonFraction>&#xa0;million. There were <ix:nonFraction id="c70014817" contextRef="d_2019-01-01_2019-12-31" unitRef="Share" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> options exercised during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019</em> or <em style="font: inherit;">2018.</em> As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> there were <ix:nonFraction id="c70014824" contextRef="i_2020-12-31" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> stock options outstanding.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Restricted Stock Units and Performance Share Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#x2019;s stock incentive plan&#xa0;provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares over a specified period of time. RSUs are service-based awards and vest according to vesting schedules, which range from immediate to ratably over a <span style="-sec-ix-hidden:c70014825">three</span>-year period. PSAs are service-based awards that vest according to the terms of the grant and have performance-based payout conditions.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the Company&#x2019;s RSU and PSA activity:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" id="c1763239" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Number of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>RSUs and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>PSAs </b><span style="font-family:Times New Roman;font-size:8pt;"><b>(1)</b></span></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Weighted-</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Average Grant</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Date Fair</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014895" contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="0" format="ixt:numdotdecimal" decimals="INF">85,170</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014896" contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">23.56</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014897" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" format="ixt:numdotdecimal" decimals="INF">97,834</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014898" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">26.61</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Unvested RSUs and PSAs canceled</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70014899" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="0" format="ixt:numdotdecimal" decimals="INF">3,752</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014900" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">23.56</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs vested <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70014901" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="0" format="ixt:numdotdecimal" decimals="INF">49,680</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014902" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">23.56</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70014903" contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="0" format="ixt:numdotdecimal" decimals="INF">129,572</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014904" contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">25.86</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The number of PSAs disclosed in this table are at the target level of <ix:nonFraction id="c70014827" contextRef="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="Pure" name="nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" scale="-2" format="ixt:numdotdecimal" decimals="0">100</ix:nonFraction>%.</p> </td></tr>
</tbody></table>
   <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#xa0;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">2</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">For the PSAs vested on <em style="font: inherit;"> March&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020;</em> the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of <ix:nonFraction id="c70014831" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="Pure" name="nwpx:PerformanceAwardsIssuedMultiplier" scale="-2" format="ixt:numdotdecimal" decimals="2">136</ix:nonFraction>%,&#xa0;based on the performance-based conditions achieved.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The unvested balance of RSUs and PSAs as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> includes approximately&#xa0;<ix:nonFraction id="c70014834" contextRef="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="Share" name="nwpx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" scale="0" format="ixt:numdotdecimal" decimals="INF">91,000</ix:nonFraction>&#xa0;PSAs at a target level of performance. The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from <ix:nonFraction id="c70014835" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MinimumMember" unitRef="Pure" name="nwpx:PerformanceAwardsIssuedMultiplier" scale="-2" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>% to <ix:nonFraction id="c70014836" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MaximumMember" unitRef="Pure" name="nwpx:PerformanceAwardsIssuedMultiplier" scale="-2" format="ixt:numdotdecimal" decimals="0">200</ix:nonFraction>%.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The weighted-average grant date fair value of RSUs granted during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019</em> was $<ix:nonFraction id="c70014840" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">26.61</ix:nonFraction> and $<ix:nonFraction id="c70014841" contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">23.56</ix:nonFraction>, respectively. The weighted-average grant date fair value of PSAs granted during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> were $<ix:nonFraction id="c70014846" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">26.61</ix:nonFraction>, $<ix:nonFraction id="c70014847" contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">23.56</ix:nonFraction> and $<ix:nonFraction id="c70014848" contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember" unitRef="USDPerShare" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">19.97</ix:nonFraction>, respectively. There were <ix:nonFraction id="c70014849" contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember" unitRef="Share" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="0" format="ixt-sec:numwordsen" decimals="-3">no</ix:nonFraction> RSUs granted during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em> The total fair value of RSUs and PSAs vested during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was $<ix:nonFraction id="c70014856" contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USD" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" format="ixt:numdotdecimal" decimals="-6">2.0</ix:nonFraction>&#xa0;million, $<ix:nonFraction id="c70014857" contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USD" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" format="ixt:numdotdecimal" decimals="-3">0</ix:nonFraction>, and $<ix:nonFraction id="c70014858" contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USD" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million, respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> unrecognized compensation expense related to the unvested portion of the Company&#x2019;s RSUs and PSAs was $<ix:nonFraction id="c70014861" contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" unitRef="USD" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" scale="6" format="ixt:numdotdecimal" decimals="-5">2.5</ix:nonFraction>&#xa0;million, which is expected to be recognized over a weighted-average period of <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" id="c70014862" format="ixt-sec:duryear">1.6</ix:nonNumeric>&#xa0;years.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Stock Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">For the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> stock awards of <ix:nonFraction id="c70014867" contextRef="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="Share" name="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" scale="0" format="ixt:numdotdecimal" decimals="INF">17,442</ix:nonFraction>&#xa0;shares, <ix:nonFraction id="c70014868" contextRef="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="Share" name="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" scale="0" format="ixt:numdotdecimal" decimals="INF">11,924</ix:nonFraction>&#xa0;shares, and <ix:nonFraction id="c70014869" contextRef="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="Share" name="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" scale="0" format="ixt:numdotdecimal" decimals="INF">11,172</ix:nonFraction>&#xa0;shares, respectively, were granted to non-employee directors, which vested immediately upon issuance. The Company recorded compensation expense based on the weighted-average fair market value per share of the awards on the grant date of $<ix:nonFraction id="c70014870" contextRef="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="USDPerShare" name="nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">25.81</ix:nonFraction> in <em style="font: inherit;">2020,</em> $<ix:nonFraction id="c70014872" contextRef="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="USDPerShare" name="nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">25.16</ix:nonFraction> in <em style="font: inherit;">2019,</em> and $<ix:nonFraction id="c70014874" contextRef="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember" unitRef="USDPerShare" name="nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" scale="0" format="ixt:numdotdecimal" decimals="INF">21.48</ix:nonFraction> in <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">27</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="c1763240" escape="true">
   <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">14</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>COMMITMENTS AND CONTINGENCIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Portland Harbor Superfund Site</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2000, </em>a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (&#x201c;EPA&#x201d;). While the Company&#x2019;s Portland, Oregon manufacturing facility does <em style="font: inherit;">not</em> border the Willamette River, an outfall from the facility&#x2019;s stormwater system drains into a neighboring property&#x2019;s privately owned stormwater system and slip. Also in <em style="font: inherit;"> December 2000, </em>the Company was notified by the EPA and the Oregon Department of Environmental Quality (&#x201c;ODEQ&#x201d;) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (&#x201c;CERCLA&#x201d;). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of <ix:nonFraction id="c70014907" contextRef="i_2017-01-31_CounterpartyNameAxis-LowerWillametteGroupMember" unitRef="Pure" name="nwpx:NumberOfPotentiallyResponsibleParties" scale="0" format="ixt:numdotdecimal" decimals="INF">14</ix:nonFraction>&#xa0;potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in <em style="font: inherit;"> February 2016, </em>and the feasibility study in <em style="font: inherit;"> June 2016, </em>which identified multiple remedial alternatives. In <em style="font: inherit;"> January 2017, </em>the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $<ix:nonFraction id="c70014908" contextRef="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember" unitRef="USD" name="nwpx:EstimatedCostOfEPASelectedRemedy" scale="9" format="ixt:numdotdecimal" decimals="-9">1</ix:nonFraction>&#xa0;billion and <ix:nonNumeric contextRef="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember" name="nwpx:EstimatedTimeToCompleteSelectedEPARemedy" id="c70014909" format="ixt-sec:duryear">13</ix:nonNumeric>&#xa0;years to complete. The EPA has <em style="font: inherit;">not</em> yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than <ix:nonFraction id="c70014911" contextRef="i_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember" unitRef="Pure" name="nwpx:NumberOfPotentiallyResponsibleParties" scale="0" format="ixt:numdotdecimal" decimals="INF">150</ix:nonFraction>&#xa0;potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and <em style="font: inherit;">no</em> further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company's site, which are focused on controlling any current &#x201c;uplands&#x201d; releases of contaminants into the Willamette River. <em style="font: inherit;">No</em> liabilities have been established in connection with these investigations because the extent of contamination and the Company's responsibility for the contamination have <em style="font: inherit;">not</em> yet been determined.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (&#x201c;Trustees&#x201d;) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (&#x201c;NRDA&#x201d;) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section&#xa0;<em style="font: inherit;">107.</em> The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, <em style="font: inherit;">three</em> federal agencies, and <em style="font: inherit;">one</em> state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In <em style="font: inherit;"> June 2014, </em>the Company agreed to participate in the injury assessment process, which included funding $<ix:nonFraction id="c70014918" contextRef="i_2014-06-30_LossContingenciesByNatureOfContingencyAxis-PortlandHarborNaturalreSourcesTrusteeCouncilMember" unitRef="USD" name="us-gaap:LossContingencyAccrualCarryingValueCurrent" scale="6" format="ixt:numdotdecimal" decimals="-5">0.4</ix:nonFraction>&#xa0;million of the assessment. The Company has <em style="font: inherit;">not</em> assumed any additional payment obligations or liabilities with the participation with the NRDA. It is uncertain whether the Company will enter into an early settlement for natural resource damages or what costs it <em style="font: inherit;"> may </em>incur in any such early settlement.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> January 2017, </em>the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in <em style="font: inherit;">2009,</em> filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The Company does <em style="font: inherit;">not</em> have sufficient information to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide <em style="font: inherit;">no</em> assurance that those policies will cover all of the costs which the Company <em style="font: inherit;"> may </em>incur.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>All Sites</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company&#x2019;s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations there under which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does <em style="font: inherit;">not</em> believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">28</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Other Contingencies and Legal Proceedings</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">From time to time, the Company is involved in litigation relating to claims arising out of its operations in the normal course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does <em style="font: inherit;">not</em> cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is <em style="font: inherit;">not</em> presently a party to litigation, the outcome of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> April&#xa0;</em><em style="font: inherit;">21,</em> <em style="font: inherit;">2019,</em> there was an accidental fire at the Company&#x2019;s Saginaw, Texas facility which resulted in damage to the coatings building. There were <em style="font: inherit;">no</em> injuries, but the ability to coat at this facility was impaired while the Company repaired the damage. The Company&#x2019;s other production locations were deployed to absorb the lost production that resulted. The Company has insurance coverage in place covering, among other things, business interruption and property damage up to certain specified amounts, and worked with its insurance company to restore the facility to full service as safely and quickly as possible. The Saginaw facility resumed operations in <em style="font: inherit;"> October 2019. </em>The Company received $<ix:nonFraction id="c70014930" contextRef="d_2020-01-01_2020-12-31_NoncatastrophicEventAxis-FireMember" unitRef="USD" name="nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">1.4</ix:nonFraction>&#xa0;million of business interruption insurance recovery (net of incremental production costs) during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and incurred $<ix:nonFraction id="c70014933" contextRef="d_2019-01-01_2019-12-31_NoncatastrophicEventAxis-FireMember" unitRef="USD" name="nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million of incremental production costs (net of business interruption insurance recovery) during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019,</em> which were recorded in Cost of sales.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Guarantees</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has entered into certain letters of credit that total $<ix:nonFraction id="c70014936" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:LettersOfCreditOutstandingAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">1.6</ix:nonFraction>&#xa0;million as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em> The letters of credit relate to workers&#x2019; compensation insurance.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="c1763241" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">15</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>REVENUE:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company adopted ASC&#xa0;Topic&#xa0;<em style="font: inherit;">606,</em> &#x201c;Revenue from Contracts with Customers,&#x201d; (&#x201c;Topic&#xa0;<em style="font: inherit;">606&#x201d;</em>) on <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> using the modified retrospective method applied to those contracts that were <em style="font: inherit;">not</em> completed as of that date. The cumulative effect of adopting Topic&#xa0;<em style="font: inherit;">606</em> was a $<ix:nonFraction id="c70014946" contextRef="i_2018-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.9</ix:nonFraction>&#xa0;million decrease to Retained earnings as of <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> due to a change in the timing of revenue recognition on certain costs under the new revenue standard, as well as, to a lesser extent, a change in the costs included in the provisions for losses on uncompleted contracts. Under the modified retrospective method, periods prior to <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> were <em style="font: inherit;">not</em> adjusted and continue to be reported in accordance with accounting standards in effect for those periods.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net sales by geographic region, based on the location of the customer, were as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock" id="c1763242" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales by geographic region:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014997" contextRef="d_2020-01-01_2020-12-31_StatementGeographicalAxis-US" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">254,956</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014998" contextRef="d_2019-01-01_2019-12-31_StatementGeographicalAxis-US" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">252,797</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70014999" contextRef="d_2018-01-01_2018-12-31_StatementGeographicalAxis-US" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">161,415</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Canada</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015000" contextRef="d_2020-01-01_2020-12-31_StatementGeographicalAxis-CA" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">30,951</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015001" contextRef="d_2019-01-01_2019-12-31_StatementGeographicalAxis-CA" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-4">26,520</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015002" contextRef="d_2018-01-01_2018-12-31_StatementGeographicalAxis-CA" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">10,734</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015003" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">285,907</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015004" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">279,317</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015005" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">172,149</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><ix:nonFraction id="c70017480" contextRef="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" unitRef="Pure" name="nwpx:NumberOfMajorCustomers" scale="0" format="ixt-sec:numwordsen" decimals="INF">One</ix:nonFraction> customer accounted for <ix:nonFraction id="c70014952" contextRef="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" unitRef="Pure" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" format="ixt:numdotdecimal" decimals="2">16</ix:nonFraction>% and <ix:nonFraction id="c70014953" contextRef="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" unitRef="Pure" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" format="ixt:numdotdecimal" decimals="2">23</ix:nonFraction>% of total Net sales for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively. <ix:nonFraction id="c70014957" contextRef="d_2018-01-01_2018-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember" unitRef="Pure" name="nwpx:NumberOfMajorCustomers" scale="0" format="ixt-sec:numwordsen" decimals="-3">No</ix:nonFraction> customer accounted for <em style="font: inherit;">10%</em> or more of total Net sales for the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revisions in contract estimates resulted in an increase (decrease) in revenue of $<ix:nonFraction id="c70014961" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" scale="6" format="ixt:numdotdecimal" decimals="-5">2.2</ix:nonFraction>&#xa0;million, $(<ix:nonFraction id="c70014962" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">1.2</ix:nonFraction>)&#xa0;million, and $(<ix:nonFraction id="c70014963" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" scale="6" format="ixt:numdotdecimal" decimals="-5" sign="-">0.2</ix:nonFraction>)&#xa0;million for the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">29</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Disaggregation of Revenue</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="c1763243" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Over time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015006" contextRef="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-4">241,690</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015007" contextRef="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">279,317</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015008" contextRef="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">172,149</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Point in time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015009" contextRef="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">44,217</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015010" contextRef="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015011" contextRef="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015012" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">285,907</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015013" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">279,317</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015014" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">172,149</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Contract Assets and Liabilities</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The difference between the opening and closing balances of the Company&#x2019;s Contract assets and Contract liabilities primarily results from the timing difference between the Company&#x2019;s performance and billings, and during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> an increase due to the acquisition of Ameron of $<ix:nonFraction id="c70014971" contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="6" format="ixt:numdotdecimal" decimals="-6">12.0</ix:nonFraction>&#xa0;million of Contract assets and $<ix:nonFraction id="c70014972" contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" scale="6" format="ixt:numdotdecimal" decimals="-5">0.1</ix:nonFraction>&#xa0;million of Contract liabilities. The changes in the Contract assets and Contract liabilities balances during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> were <em style="font: inherit;">not</em> materially affected by any other factors.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognized revenue that was included in the Contract liabilities balance at the beginning of each period of $<ix:nonFraction id="c70014978" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" format="ixt:numdotdecimal" decimals="-5">12.3</ix:nonFraction>&#xa0;million, $<ix:nonFraction id="c70014979" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" format="ixt:numdotdecimal" decimals="-5">3.7</ix:nonFraction>&#xa0;million, and $<ix:nonFraction id="c70014980" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:ContractWithCustomerLiabilityRevenueRecognized" scale="6" format="ixt:numdotdecimal" decimals="-5">2.6</ix:nonFraction>&#xa0;million during the years ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Backlog</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Backlog represents the balance of remaining performance obligations under signed contracts for water infrastructure steel pipe products for which revenue is recognized over time. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> backlog was approximately&#xa0;$<ix:nonFraction id="c70014987" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:RevenueRemainingPerformanceObligation" scale="6" format="ixt:numdotdecimal" decimals="-6">167</ix:nonFraction>&#xa0;million. The Company expects to recognize approximately&#xa0;<ix:nonFraction id="c70014988" contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01" unitRef="Pure" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" format="ixt:numdotdecimal" decimals="2">79</ix:nonFraction>% of the remaining performance obligations in <span style="-sec-ix-hidden:c70014989">2021,</span> <ix:nonFraction id="c70014990" contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01" unitRef="Pure" name="us-gaap:RevenueRemainingPerformanceObligationPercentage" scale="-2" format="ixt:numdotdecimal" decimals="1">20</ix:nonFraction>% in <span style="-sec-ix-hidden:c70014991">2022,</span> and the balance thereafter.</p>
  </ix:nonNumeric>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:IncomeTaxDisclosureTextBlock" id="c1763244" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">16</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>INCOME TAXES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The United States and foreign components of Income before income taxes are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" id="c1763245" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015091" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" scale="3" format="ixt:numdotdecimal" decimals="-3">24,768</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015092" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" scale="3" format="ixt:numdotdecimal" decimals="-3">32,244</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015093" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" scale="3" format="ixt:numdotdecimal" decimals="-3">16,207</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015094" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" format="ixt:numdotdecimal" decimals="-3">866</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015095" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" format="ixt:numdotdecimal" decimals="-3">396</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015096" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" scale="3" format="ixt:numdotdecimal" decimals="-3">853</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015097" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-3">25,634</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015098" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-4">32,640</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015099" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" scale="3" format="ixt:numdotdecimal" decimals="-4">17,060</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The components of Income tax expense (benefit) are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="c1763246" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Current:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015101" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">958</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015102" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">174</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015103" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CurrentFederalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">117</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015104" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">1,342</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015105" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">16</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015106" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">99</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015107" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">243</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015108" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">439</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015109" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CurrentForeignTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">395</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total current income tax expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015110" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">2,543</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015111" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">597</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015112" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:CurrentIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">377</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015114" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-4">4,380</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015115" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">3,597</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015116" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,954</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015117" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">386</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015118" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">561</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015119" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">807</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015120" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">47</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015121" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">17</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015122" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">132</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: 9pt;">Total deferred income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015123" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,041</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015124" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,141</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015125" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,629</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015126" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">6,584</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015127" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,738</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015128" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,252</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">30</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The difference between the Company&#x2019;s effective income tax rate and the federal statutory income tax rate is explained as follows (dollar amounts in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="c1763247" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Income tax expense at federal statutory rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015129" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" format="ixt:numdotdecimal" decimals="-3">5,383</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015130" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" format="ixt:numdotdecimal" decimals="-3">6,854</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015131" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" scale="3" format="ixt:numdotdecimal" decimals="-3">3,583</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">State expense (benefit), net of federal income tax effect</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015132" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" format="ixt:numdotdecimal" decimals="-3">953</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015133" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" format="ixt:numdotdecimal" decimals="-3">1,261</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015134" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">218</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Federal and state income tax credits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015135" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015136" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015137" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits" scale="3" format="ixt:numdotdecimal" decimals="-3">7</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Change in valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015138" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">181</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015139" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,564</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015140" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2,618</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Tax windfall on share-based compensation</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015141" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015142" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015143" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">369</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015144" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015145" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" scale="3" format="ixt:zerodash" decimals="-3" sign="-">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015146" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">4,228</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Nondeductible expenses</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; text-align: right;"><ix:nonFraction id="c70015147" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">447</ix:nonFraction></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015148" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">24</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015149" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationNondeductibleExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">427</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign rate differential</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015150" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" format="ixt:numdotdecimal" decimals="-3">78</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015151" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" format="ixt:numdotdecimal" decimals="-3">36</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015152" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential" scale="3" format="ixt:numdotdecimal" decimals="-3">77</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015153" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">96</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015154" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" format="ixt:numdotdecimal" decimals="-3">175</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015155" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxReconciliationOtherAdjustments" scale="3" format="ixt:numdotdecimal" decimals="-3">101</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015156" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">6,584</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015157" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">4,738</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015158" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3,252</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effective income tax rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015159" contextRef="d_2020-01-01_2020-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" format="ixt:numdotdecimal" decimals="3">25.7</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015160" contextRef="d_2019-01-01_2019-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" format="ixt:numdotdecimal" decimals="3">14.5</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015161" contextRef="d_2018-01-01_2018-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" format="ixt:numdotdecimal" decimals="3" sign="-">19.1</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)%</p> </td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#xa0;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The income tax effect of temporary differences that give rise to significant portions of deferred income tax assets and liabilities is presented below (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="c1763248" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued employee benefits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015163" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" scale="3" format="ixt:numdotdecimal" decimals="-3">3,525</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015164" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" scale="3" format="ixt:numdotdecimal" decimals="-3">3,089</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015165" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsInventory" scale="3" format="ixt:numdotdecimal" decimals="-3">73</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015166" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsInventory" scale="3" format="ixt:numdotdecimal" decimals="-3">147</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade receivable, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015167" contextRef="i_2020-12-31" unitRef="USD" name="nwpx:DeferredTaxAssetTradeReceivableNet" scale="3" format="ixt:numdotdecimal" decimals="-3">958</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015168" contextRef="i_2019-12-31" unitRef="USD" name="nwpx:DeferredTaxAssetTradeReceivableNet" scale="3" format="ixt:numdotdecimal" decimals="-3">788</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net operating loss carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015169" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" format="ixt:numdotdecimal" decimals="-3">3,231</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015170" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwards" scale="3" format="ixt:numdotdecimal" decimals="-3">5,391</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Tax credit carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015171" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" scale="3" format="ixt:numdotdecimal" decimals="-3">2,699</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015172" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwards" scale="3" format="ixt:numdotdecimal" decimals="-3">5,173</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015173" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsOther" scale="3" format="ixt:numdotdecimal" decimals="-3">389</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015174" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsOther" scale="3" format="ixt:numdotdecimal" decimals="-3">509</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015175" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">10,875</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015176" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsGross" scale="3" format="ixt:numdotdecimal" decimals="-3">15,097</ix:nonFraction></td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015177" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" format="ixt:numdotdecimal" decimals="-3">6,228</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015178" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" format="ixt:numdotdecimal" decimals="-3">6,126</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015179" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">4,647</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015180" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">8,971</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Contract assets, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015182" contextRef="i_2020-12-31" unitRef="USD" name="nwpx:DeferredTaxLiabilitiesContractAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,366</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015183" contextRef="i_2019-12-31" unitRef="USD" name="nwpx:DeferredTaxLiabilitiesContractAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">1,703</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015184" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">12,029</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015185" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" scale="3" format="ixt:numdotdecimal" decimals="-3">10,578</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015186" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">2,737</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015187" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" scale="3" format="ixt:numdotdecimal" decimals="-3">226</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015188" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesPrepaidExpenses" scale="3" format="ixt:numdotdecimal" decimals="-3">889</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015189" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilitiesPrepaidExpenses" scale="3" format="ixt:numdotdecimal" decimals="-3">587</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015190" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">17,021</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015191" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">13,094</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015192" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">12,374</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015193" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">4,123</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Amounts are presented in the Consolidated Balance Sheets as follows:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income tax assets, included in Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015195" contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherAssetsMember" unitRef="USD" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">107</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015196" contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherAssetsMember" unitRef="USD" name="us-gaap:DeferredIncomeTaxAssetsNet" scale="3" format="ixt:numdotdecimal" decimals="-3">142</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015197" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" format="ixt:numdotdecimal" decimals="-3">12,481</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015198" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" scale="3" format="ixt:numdotdecimal" decimals="-3">4,265</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015199" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">12,374</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015200" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:DeferredTaxLiabilities" scale="3" format="ixt:numdotdecimal" decimals="-3">4,123</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">31</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
   <ix:exclude>&#xa0;</ix:exclude>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In assessing the ability to realize deferred income tax assets, management considers whether it is more likely than <em style="font: inherit;">not</em> that some portion or all of the deferred income tax assets will <em style="font: inherit;">not</em> be realized. The ultimate realization of deferred income tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become deductible. Management considers the scheduled reversal of deferred income tax liabilities, projected future taxable income, taxable income in carryback periods, and tax planning strategies in making this assessment. Because the Company has a recent history of generating cumulative losses, management did <em style="font: inherit;">not</em> consider projections of future taxable income as persuasive evidence for the recoverability of its deferred income tax assets. The Company believes it is more likely than <em style="font: inherit;">not</em> it will realize the benefits of its deductible differences as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> net of any valuation allowance.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company had approximately $<ix:nonFraction id="c70015026" contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember" unitRef="USD" name="us-gaap:TaxCreditCarryforwardAmount" scale="6" format="ixt:numdotdecimal" decimals="-6">2.0</ix:nonFraction>&#xa0;million of federal income tax credit carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015027">2023</span> and <span style="-sec-ix-hidden:c70015028">2034,</span> and $<ix:nonFraction id="c70015029" contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember" unitRef="USD" name="us-gaap:TaxCreditCarryforwardAmount" scale="6" format="ixt:numdotdecimal" decimals="-6">1.0</ix:nonFraction>&#xa0;million of capital loss carryforwards, which expire in <span style="-sec-ix-hidden:c70015030">2024.</span> As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company also had approximately&#xa0;$<ix:nonFraction id="c70015033" contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember" unitRef="USD" name="us-gaap:OperatingLossCarryforwards" scale="6" format="ixt:numdotdecimal" decimals="-7">30.0</ix:nonFraction>&#xa0;million of state net operating loss carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015034">2021</span>&#xa0;and <span style="-sec-ix-hidden:c70015035">2038,</span> and state income tax credit carryforwards of $<ix:nonFraction id="c70015036" contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember" unitRef="USD" name="us-gaap:TaxCreditCarryforwardAmount" scale="6" format="ixt:numdotdecimal" decimals="-5">4.2</ix:nonFraction>&#xa0;million, which begin to expire in <span style="-sec-ix-hidden:c70015037">2021.</span> As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company also had approximately&#xa0;$<ix:nonFraction id="c70015040" contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember" unitRef="USD" name="us-gaap:OperatingLossCarryforwards" scale="6" format="ixt:numdotdecimal" decimals="-5">4.4</ix:nonFraction>&#xa0;million of foreign net operating loss carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015041">2023</span> and <span style="-sec-ix-hidden:c70015042">2030.</span></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is <em style="font: inherit;">no</em> longer subject to United States Federal, state, or foreign income tax examinations for years before <em style="font: inherit;">2016.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">A summary of the changes in the unrecognized income tax benefits is presented below (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="c1763249" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td><td style="width: 13%;">&#xa0;</td><td style="width: 1%;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, beginning of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015201" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-4">4,350</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015202" contextRef="i_2018-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-4">4,350</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015203" contextRef="i_2017-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-3">4,116</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Increases for positions taken in the current year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015204" contextRef="d_2020-01-01_2020-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015205" contextRef="d_2019-01-01_2019-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" format="ixt:zerodash" decimals="-3">-</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015206" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" format="ixt:numdotdecimal" decimals="-3">234</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, end of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015207" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-4">4,350</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015208" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-4">4,350</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015209" contextRef="i_2018-12-31" unitRef="USD" name="us-gaap:UnrecognizedTaxBenefits" scale="3" format="ixt:numdotdecimal" decimals="-4">4,350</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#xa0;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company does <em style="font: inherit;">not</em> believe it is reasonably possible that the total amounts of unrecognized income tax benefits will change in the following <em style="font: inherit;">twelve</em> months; however, actual results could differ from those currently expected. Effectively all of the unrecognized income tax benefits would affect the Company&#x2019;s effective income tax rate if recognized at some point in the future.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognizes interest and penalties related to uncertain income tax positions in Income tax expense (benefit). As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the Company had <span style="-sec-ix-hidden:c70015050"><span style="-sec-ix-hidden:c70015051">no</span></span> accrued interest related to uncertain income tax positions. Total interest for uncertain income tax positions did <em style="font: inherit;">not</em> change materially in <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> or <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">22,</em> <em style="font: inherit;">2017,</em> the Tax Cuts and Jobs Act of <em style="font: inherit;">2017</em> (&#x201c;TCJA&#x201d;) was signed into law making significant changes to the Internal Revenue Code. Changes include, but are <em style="font: inherit;">not</em> limited to, a federal corporate income tax rate decrease from <ix:nonFraction id="c70015060" contextRef="d_2017-01-01_2017-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" format="ixt:numdotdecimal" decimals="2">35</ix:nonFraction>% to <ix:nonFraction id="c70015061" contextRef="d_2020-01-01_2020-12-31" unitRef="Pure" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" format="ixt:numdotdecimal" decimals="2">21</ix:nonFraction>% effective for tax years beginning after <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2017,</em> the transition of U.S. international taxation from a worldwide tax system to a territorial system, and a <em style="font: inherit;">one</em>-time transition tax on the mandatory deemed repatriation of cumulative foreign earnings as of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2017.</em> Additionally, Staff Accounting Bulletin <em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">118</em> (&#x201c;SAB&#xa0;<em style="font: inherit;">118&#x201d;</em>) was issued to address the application of U.S. GAAP in situations when a registrant does <em style="font: inherit;">not</em> have the necessary information available, prepared, or analyzed (including computations) in reasonable detail to complete the accounting for certain income tax effects of the TCJA. As of <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">22,</em> <em style="font: inherit;">2018,</em> the end of the measurement period for purposes of SAB&#xa0;<em style="font: inherit;">118,</em> the Company had completed the analysis based on available legislative updates relating to the TCJA, which did <em style="font: inherit;">not</em> result in material changes from the amount recorded in <em style="font: inherit;">2017.</em> On <em style="font: inherit;"> January&#xa0;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2019,</em> the Company adopted Accounting Standards Update&#xa0;<em style="font: inherit;">No.</em>&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">02,</em> &#x201c;Income Statement&#x2014;Reporting Comprehensive Income (Topic&#xa0;<em style="font: inherit;">220</em>): Reclassification of Certain Tax Effects from Accumulated Other Comprehensive Income&#x201d; (&#x201c;ASU&#xa0;<em style="font: inherit;">2018</em>-<em style="font: inherit;">02&#x201d;</em>), which resulted in a reclassification of $<ix:nonFraction id="c70015086" contextRef="d_2019-01-01_2019-01-01" unitRef="USD" name="us-gaap:TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" scale="6" format="ixt:numdotdecimal" decimals="-5">0.2</ix:nonFraction>&#xa0;million from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the TCJA.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">32</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ComprehensiveIncomeNoteTextBlock" id="c1763250" escape="true">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: top;">
      <td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">17.</em></b></p> </td>
      <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>ACCUMULATED OTHER COMPREHENSIVE LOSS:</b></p> </td>
     </tr>

    </tbody>
   </table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accumulated other comprehensive loss consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" id="c1763251" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      </tr>

      <tr>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment, net of income tax benefit of $679 and $671</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015212" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3">1,795</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015213" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-4">1,770</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015216" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">71</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015217" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">44</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015220" contextRef="i_2020-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,866</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015221" contextRef="i_2019-12-31" unitRef="USD" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,814</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" id="c1763252" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Pension Liability Adjustment</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Unrealized</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss&#xa0;on Cash</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Flow Hedges</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="width: 52%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2019</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015222" contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-4" sign="-">1,770</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015223" contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">44</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015224" contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,814</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="width: 52%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Other comprehensive loss before reclassifications</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015225" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">3</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015226" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">308</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015227" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">311</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015228" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3">22</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015229" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">281</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015230" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">259</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Net current period adjustments to Other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015231" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">25</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015232" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">27</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015233" contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">52</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="width: 52%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2020</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015234" contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,795</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015235" contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">71</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015236" contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:StockholdersEquity" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">1,866</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Consolidated Statements of Operations (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" id="c1763253" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount reclassified from Accumulated Other</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Comprehensive Loss</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Affected line item in the</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Details about Accumulated Other</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Consolidated Statements</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0); width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Comprehensive Loss Components</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#xa0;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0); width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>of Operations</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="width: 30%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 13%;">&#xa0;</td>
       <td style="width: 1%;">&#xa0;</td>
       <td style="width: 22%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net periodic pension cost:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015239" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">16</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015240" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">11</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015241" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:CostOfGoodsAndServicesSold" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">11</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Cost of sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Non-service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015243" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">46</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015244" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">15</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015245" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">52</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Other income</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015247" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">8</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015248" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">4</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015249" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">8</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015251" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">22</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015252" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">22</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015253" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">49</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#xa0;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Unrealized gain (loss) on cash flow hedges:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#xa0;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Gain (loss) on cash flow hedges</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015256" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">378</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015257" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">5</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015258" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax" scale="3" format="ixt:numdotdecimal" decimals="-3">13</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Net sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015260" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">97</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015261" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">2</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015262" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:IncomeTaxExpenseBenefit" scale="3" format="ixt:numdotdecimal" decimals="-3">1</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(<ix:nonFraction id="c70015264" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">281</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015265" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">7</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#xa0;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"><ix:nonFraction id="c70015266" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">12</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#xa0;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Total reclassifications for the period</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015268" contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">259</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(<ix:nonFraction id="c70015269" contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3" sign="-">15</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"><ix:nonFraction id="c70015270" contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" unitRef="USD" name="us-gaap:NetIncomeLoss" scale="3" format="ixt:numdotdecimal" decimals="-3">61</ix:nonFraction></td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#xa0;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#xa0;</em></td>
      </tr>

     </tbody>
    </table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">33</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="c1763254" escape="true">
   <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">18</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>RESTRUCTURING:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2018, </em>the Company announced its plan to close its leased manufacturing facility in Salt Lake City, Utah and move the production to its facility in St.&#xa0;Louis, Missouri, which was completed during the <em style="font: inherit;">second</em> quarter of <em style="font: inherit;">2018.</em> Also in <em style="font: inherit;"> March 2018, </em>the Company announced its plan to close its manufacturing facility in Monterrey, Mexico. Production ceased early in the <em style="font: inherit;">second</em> quarter of <em style="font: inherit;">2018,</em> and the facility was sold in <em style="font: inherit;"> December 2018. </em>The Company incurred restructuring expense of $<ix:nonFraction id="c70015277" contextRef="d_2018-01-01_2018-12-31" unitRef="USD" name="us-gaap:RestructuringCharges" scale="6" format="ixt:numdotdecimal" decimals="-5">1.4</ix:nonFraction>&#xa0;million during the year ended <em style="font: inherit;"> December&#xa0;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which includes employee severance and termination related restructuring expense of $<ix:nonFraction id="c70015280" contextRef="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember" unitRef="USD" name="us-gaap:RestructuringCharges" scale="6" format="ixt:numdotdecimal" decimals="-5">0.6</ix:nonFraction>&#xa0;million and expense related to demobilization activities of $<ix:nonFraction id="c70015281" contextRef="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-DemobilizationActivitiesMember" unitRef="USD" name="us-gaap:RestructuringCharges" scale="6" format="ixt:numdotdecimal" decimals="-5">0.8</ix:nonFraction>&#xa0;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>&#xa0;</b></p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        F-
       <em style="font: inherit;">34</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <div>
    &#xa0;
  </div>
  <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" id="c1763255" escape="true">
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>Schedule II</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a id="sched2" title="sched2" href="#"></a>VALUATION AND QUALIFYING ACCOUNTS</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Dollars in thousands)</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#xa0;</p>
   <ix:nonNumeric contextRef="d_2020-01-01_2020-12-31" name="nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock" id="c1763256" escape="true">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at Beginning of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Charged to</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Profit and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Deduction</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>from</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Reserves</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>End of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2020:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015285" contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">801</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;"><ix:nonFraction id="c70015286" contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-4">430</ix:nonFraction></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(<ix:nonFraction id="c70015287" contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">464</ix:nonFraction></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;"><ix:nonFraction id="c70015288" contextRef="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">767</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015289" contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">6,126</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;"><ix:nonFraction id="c70015290" contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-4">240</ix:nonFraction></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(<ix:nonFraction id="c70015291" contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">138</ix:nonFraction></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015292" contextRef="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">6,228</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2019:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015294" contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-4">660</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015295" contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">312</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015296" contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">171</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015297" contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">801</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015298" contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">9,433</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015299" contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">345</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015300" contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">3,652</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015301" contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">6,126</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td><td>&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2018:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015303" contextRef="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">477</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015304" contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">449</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015305" contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">266</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015306" contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-4">660</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015307" contextRef="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">10,413</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015308" contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" format="ixt:numdotdecimal" decimals="-3">1,785</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(<ix:nonFraction id="c70015309" contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" format="ixt:numdotdecimal" decimals="-3">2,765</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#xa0;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"><ix:nonFraction id="c70015310" contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember" unitRef="USD" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" format="ixt:numdotdecimal" decimals="-3">9,433</ix:nonFraction></td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#xa0;</td></tr>
</tbody></table>
   </ix:nonNumeric>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#xa0;</b></p>
   <ix:exclude>
    <div class="PGFTR" style="text-align: center; width: 100%">
     <div class="hf-row">
      <div class="hf-cell PGNUM" style="text-align: center; font-size: 10pt; font-family: Times New Roman;">
        S-
       <em style="font: inherit;">1</em>
      </div>
     </div>
    </div>
    <hr style="PAGE-BREAK-AFTER: always; border: none; width: 100%; height: 2px; color: #000000; background-color: #000000" />
    <div class="PGHDR" style="text-align: left; width: 100%">
     <div class="hf-row">
      <div class="hf-cell TOCLink" style="display: inline-block; text-align: left;">
       <a href="#toc" style="font-weight: initial; font-style: initial; font-variant: initial; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif;">Table of Contents</a>
      </div>
     </div>
    </div>
   </ix:exclude>
  </ix:nonNumeric>
  <div>
    &#xa0;
  </div>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>SIGNATURES</b></p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Pursuant to the requirements of Section&#xa0;13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized, on the 4<sup style="vertical-align:top;line-height:120%;font-size:pt">th</sup>&#xa0;day of March 2021.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:top;width:54.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td colspan="2" style="vertical-align:top;width:45%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">NORTHWEST PIPE COMPANY&#xa0;</p> </td>
     <td style="vertical-align:top;width:0.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:54.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:4.1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:bottom;width:40.9%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:0.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:54.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:4.1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">By</p> </td>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:40.9%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0; SCOTT&#xa0;MONTROSS&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:0.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:54.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:4.1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:40.9%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Scott</b><b>&#xa0;</b><b>Montross</b></p> </td>
     <td style="vertical-align:top;width:0.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:54.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:4.1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:40.9%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Director, President</b><b>,</b><b> and Chief&#xa0;Executive&#xa0;Officer</b></p> </td>
     <td style="vertical-align:top;width:0.5%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities indicated, on the 4<sup style="vertical-align:top;line-height:120%;font-size:pt">th</sup>&#xa0;day of March 2021.</p>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">
   <tbody>
    <tr>
     <td style="vertical-align:bottom;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Signature</b></p> </td>
     <td style="vertical-align:bottom;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:bottom;border-bottom:solid 1px #000000;;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Title</b></p> </td>
    </tr>

    <tr>
     <td style="vertical-align:middle;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;RICHARD A. ROMAN&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director and Chairman of the Board</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:middle;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Richard A. Roman</b></p> </td>
     <td style="vertical-align:middle;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:middle;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;SCOTT&#xa0;MONTROSS&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director, President, and Chief&#xa0;Executive&#xa0;Officer</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Scott Montross</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(principal&#xa0;executive&#xa0;officer)</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:middle;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:bottom;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;AARON&#xa0;WILKINS&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Senior&#xa0;Vice&#xa0;President, Chief&#xa0;Financial&#xa0;Officer and Corporate&#xa0;Secretary</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Aaron Wilkins</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(principal&#xa0;financial&#xa0;and accounting&#xa0;officer)</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;MICHAEL C. FRANSON&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Michael C. Franson</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:middle;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:middle;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;AMANDA L. KULESA&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Amanda L. Kulesa</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;KEITH R. LARSON&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Keith R. Larson</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;border-bottom:solid 1px #000000;;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;JOHN. T. PASCHAL&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>John T. Paschal</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;">&#xa0;</td>
     <td style="vertical-align:top;width:1%;">&#xa0;</td>
     <td style="vertical-align:top;width:50%;">&#xa0;</td>
    </tr>

    <tr>
     <td style="vertical-align: top; width: 49%; border-bottom: thin solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/S/&#xa0;&#xa0;&#xa0;&#xa0;WILLIAM S. YEARSLEY&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Director</p> </td>
    </tr>

    <tr>
     <td style="vertical-align:top;width:49%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>William S. Yearsley</b></p> </td>
     <td style="vertical-align:top;width:1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
     <td style="vertical-align:top;width:50%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&#xa0;</p> </td>
    </tr>

   </tbody>
  </table>
  <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#xa0;</p>
  <div class="LAST-PAGE-BREAK">
   <div class="PGFTR">
    <div class="hf-row">
     <div class="hf-cell PGNUM">
       &#xa0;
     </div>
    </div>
   </div>
  </div>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21.1
<SEQUENCE>2
<FILENAME>ex_223767.htm
<DESCRIPTION>EXHIBIT 21.1
<TEXT>
<html><head>
	<title>ex_223767.htm</title>

	<!-- Generated by ThunderDome Portal - 2/2/2021 6:34:54 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; padding:0in .1in;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>EXHIBIT 21.1</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>NORTHWEST PIPE COMPANY</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>SUBSIDIARIES OF THE REGISTRANT</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>As of December&nbsp;31, 20</b><b>20</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Permalok Corporation, Missouri</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Thompson Tank Holdings, Inc., Oregon</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">NWPC, LLC, Delaware</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">WTG Holding U.S., Inc., California</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Bolenco Corporation, California</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">NWPC de SLRC, S de RL de CV, Mexico</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">NWPC de Mexico, S de RL de CV, Mexico</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Rio Co., S de RL de CV, Mexico</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Corporacion Californiana de Tuberias APS, S de RL de CV, Mexico</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Geneva Pipe and Precast Company, Utah</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>ex_223768.htm
<DESCRIPTION>EXHIBIT 23.1
<TEXT>
<html><head>
	<title>ex_223768.htm</title>
	<!-- Generated by ThunderDome Portal - 3/1/2021 7:44:16 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; padding:0in .1in;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>Exhibit 23.1</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">We consent to the incorporation by reference in the Registration Statements on Form&nbsp;S-3 (No.&nbsp;333-249637) and Form&nbsp;S-8 (Nos.&nbsp;333-190854 and 333-152573) of Northwest Pipe Company of our report dated March&nbsp;4, 2021, relating to the consolidated financial statements and the financial statement schedule of Northwest Pipe Company and Subsidiaries (the &#8220;Company&#8221;) as of and for the year ended December&nbsp;31, 2020 (which report expresses an unqualified opinion and includes an explanatory paragraph relating to the changes in the method of accounting for leases in 2019), and the effectiveness of the Company&#8217;s internal control over financial reporting, appearing in this Annual Report on Form&nbsp;10-K of Northwest Pipe Company for the year ended December&nbsp;31, 2020.</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">/s/ Moss Adams LLP</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Portland, Oregon</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">March&nbsp;4, 2021</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>ex_223769.htm
<DESCRIPTION>EXHIBIT 31.1
<TEXT>
<html><head>
	<title>ex_223769.htm</title>

	<!-- Generated by ThunderDome Portal - 2/2/2021 6:37:30 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0in 0.1in; cursor: auto;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>EXHIBIT 31.1</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CERTIFICATION</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">I, Scott Montross, certify that:</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">1.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">I have reviewed this Annual Report on Form&nbsp;10-K of Northwest Pipe Company;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">2.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">3.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects&nbsp;the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">4.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&nbsp;13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules&nbsp;13a-15(f) and 15d-15(f)) for the registrant and have:</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">a.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">b.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">c.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">d.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">5.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">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):</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">a.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">b.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table cellpadding="0pt" cellspacing="0pt" style="width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; margin-right: 0pt;">

		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td colspan="1" style="vertical-align: top; width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Date:&nbsp;March&nbsp;4, 2021</p>
			</td>
			<td style="vertical-align: bottom; width: 3%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">By:</p>
			</td>
			<td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 52%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/s/&nbsp;&nbsp;&nbsp;&nbsp;SCOTT&nbsp;MONTROSS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 3%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 52%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Scott Montross</b></p>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 3%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 52%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Director, President, and Chief&nbsp;Executive&nbsp;Officer</b></p>

			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>(principal&nbsp;executive&nbsp;officer)</b></p>
			</td>
		</tr>

</table>

<p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>ex_223770.htm
<DESCRIPTION>EXHIBIT 31.2
<TEXT>
<html><head>
	<title>ex_223770.htm</title>

	<!-- Generated by ThunderDome Portal - 2/2/2021 6:46:39 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding: 0in 0.1in; cursor: auto;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>EXHIBIT 31.2</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CERTIFICATION</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">I, Aaron Wilkins, certify that:</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">1.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">I have reviewed this Annual Report on Form&nbsp;10-K of Northwest Pipe Company;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">2.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">3.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects&nbsp;the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">4.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules&nbsp;13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules&nbsp;13a-15(f) and 15d-15(f)) for the registrant and have:</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">a.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">b.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">c.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">d.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">5.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">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 function):</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">a.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 45pt;">&nbsp;</td>
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">b.</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">

		<tr>
			<td colspan="1" style="vertical-align: top; width: 45%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">Date: March&nbsp;4, 2021</p>
			</td>
			<td style="vertical-align: bottom; width: 3%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">By:</p>
			</td>
			<td style="vertical-align: bottom; border-bottom: 1px solid rgb(0, 0, 0); width: 52%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/s/&nbsp;&nbsp;&nbsp;&nbsp;AARON WILKINS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align: top; width: 45%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 3%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
			<td style="vertical-align: bottom; width: 52%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Aaron Wilkins</b></p>

			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Senior&nbsp;Vice&nbsp;President</b><b>,</b><b> Chief&nbsp;Financial&nbsp;Officer</b><b>, and Corporate&nbsp;Secretary</b></p>

			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>(principal&nbsp;financial&nbsp;officer)</b></p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>ex_223771.htm
<DESCRIPTION>EXHIBIT 32.1
<TEXT>
<html><head>
	<title>ex_223771.htm</title>

	<!-- Generated by ThunderDome Portal - 2/2/2021 6:48:33 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; padding:0in .1in;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>EXHIBIT 32.1</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CERTIFICATION PURSUANT TO</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>18 U.S.C. SECTION 1350,</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>AS ADOPTED PURSUANT TO</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In connection with the Annual Report of Northwest Pipe Company (&#8220;Company&#8221;) on Form&nbsp;10-K for the period ended December&nbsp;31, 2020 as filed with the Securities and Exchange Commission on the date hereof (&#8220;Report&#8221;), I, Scott Montross, Director, President and Chief Executive Officer of the Company, certify, pursuant to 18 U.S.C. &#167;&nbsp;1350, as adopted pursuant to &#167;&nbsp;906 of the Sarbanes-Oxley Act of 2002, that:</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(1)</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The Report fully complies with the requirements of Section&nbsp;13(a) or 15(d) of the Securities Exchange Act of 1934; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 27pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(2)</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table cellpadding="0pt" cellspacing="0pt" style="width: 100%; text-indent: 0px; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; margin-right: 0pt;">

		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; border-bottom: 1px solid rgb(0, 0, 0); width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/s/&nbsp;SCOTT&nbsp;MONTROSS</p>
			</td>
			<td style="vertical-align: top; width: 55%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Scott Montross</b></p>
			</td>
			<td style="vertical-align: top; width: 55%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>
		<tr style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<td style="vertical-align: top; width: 45%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">&nbsp;<b>Director, President, and Chief&nbsp;Executive&nbsp;Officer</b></p>
			</td>
			<td style="vertical-align: top; width: 55%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">March&nbsp;4, 2021</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>ex_223772.htm
<DESCRIPTION>EXHIBIT 32.2
<TEXT>
<html><head>
	<title>ex_223772.htm</title>

	<!-- Generated by ThunderDome Portal - 2/2/2021 6:49:30 PM --><meta charset="utf-8"><meta name="format-detection" content="telephone=no">
</head>
<body style="font-family: 'Times New Roman', Times, serif; font-size: 10pt; padding:0in .1in;">
<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>EXHIBIT 32.2</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>CERTIFICATION PURSUANT TO</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>18 U.S.C. SECTION 1350,</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>AS ADOPTED PURSUANT TO</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</b></p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In connection with the Annual Report of Northwest Pipe Company (&#8220;Company&#8221;) on Form&nbsp;10-K for the period ended December&nbsp;31, 2020 as filed with the Securities and Exchange Commission on the date hereof (&#8220;Report&#8221;), I, Aaron Wilkins, Senior Vice President, Chief Financial Officer, and Corporate Secretary of the Company, certify, pursuant to 18 U.S.C. &#167;&nbsp;1350, as adopted pursuant to &#167;&nbsp;906 of the Sarbanes-Oxley Act of 2002, that:</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(1)</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The Report fully complies with the requirements of Section&nbsp;13(a) or 15(d) of the Securities Exchange Act of 1934; and</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">

		<tr style="vertical-align: top;">
			<td style="width: 18pt;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(2)</p>
			</td>
			<td>
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The information contained in the Report fairly presents, in all material respects, the financial condition and result of operations of the Company.</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0" style="width:100%;text-indent:0;font-family:'Times New Roman', Times, serif;font-size:10pt;">

		<tr>
			<td style="vertical-align:top;border-bottom:solid 1px #000000;;width:45%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">/s/&nbsp;&nbsp;&nbsp;&nbsp;AARON WILKINS&nbsp;</p>
			</td>
			<td style="vertical-align:top;width:55%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:45%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">&nbsp;<b>Aaron Wilkins</b></p>
			</td>
			<td style="vertical-align:top;width:55%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>
		<tr>
			<td style="vertical-align:top;width:45%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;">&nbsp;<b>Senior&nbsp;Vice&nbsp;President</b><b>,</b><b> Chief&nbsp;Financial&nbsp;Officer</b><b>, and Corporate&nbsp;Secretary</b></p>
			</td>
			<td style="vertical-align:top;width:55%;">
			<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">&nbsp;</p>
			</td>
		</tr>

</table>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&nbsp;</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">March&nbsp;4, 2021</p>

<p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&nbsp;</p>

<div class="LAST-PAGE-BREAK">
<div class="PGFTR">
<div class="hf-row">
<div class="hf-cell PGNUM" style="margin: 0pt;">&nbsp;</div>
</div>
</div>
</div>


</body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>8
<FILENAME>nwpx-20201231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:58PM UTC 2021-03-04--><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 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:exch="http://xbrl.sec.gov/exch/2020-01-31" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:naics="http://xbrl.sec.gov/naics/2011-01-31" xmlns:nonnum="http://www.xbrl.org/dtr/type/non-numeric" xmlns:num="http://www.xbrl.org/dtr/type/numeric" xmlns:nwpx="http://www.nwpipe.com/20201231" xmlns:sic="http://xbrl.sec.gov/sic/2020-01-31" xmlns:srt="http://fasb.org/srt/2020-01-31" xmlns:srt-types="http://fasb.org/srt-types/2020-01-31" xmlns:stpr="http://xbrl.sec.gov/stpr/2018-01-31" xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31" xmlns:us-types="http://fasb.org/us-types/2020-01-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.nwpipe.com/20201231">
  <xsd:import namespace="http://xbrl.sec.gov/sic/2020-01-31" schemaLocation="https://xbrl.sec.gov/sic/2020/sic-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/exch/2020-01-31" schemaLocation="https://xbrl.sec.gov/exch/2020/exch-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/naics/2011-01-31" schemaLocation="http://xbrl.sec.gov/naics/2011/naics-2011-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-gaap/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/country/2020-01-31" schemaLocation="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/us-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/us-gaap/2020/elts/us-types-2020-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/non-numeric" schemaLocation="http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/stpr/2018-01-31" schemaLocation="https://xbrl.sec.gov/stpr/2018/stpr-2018-01-31.xsd"/>
  <xsd:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/dtr/type/numeric" schemaLocation="http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd"/>
  <xsd:import namespace="http://xbrl.sec.gov/currency/2020-01-31" schemaLocation="https://xbrl.sec.gov/currency/2020/currency-2020-01-31.xsd"/>
  <xsd:import namespace="http://fasb.org/srt-types/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-types-2020-01-31.xsd"/>
  <xsd:import namespace="http://www.xbrl.org/2009/role/negated" schemaLocation="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd"/>
  <xsd:import namespace="http://fasb.org/srt/2020-01-31" schemaLocation="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20201231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20201231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20201231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="nwpx-20201231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="statement-document-and-entity-information" roleURI="http://www.nwpipe.com/20201231/role/statement-document-and-entity-information">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">000 - Document - Document And Entity Information</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-operations" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">001 - Statement - Consolidated Statements of Operations</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-comprehensive-income" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">002 - Statement - Consolidated Statements of Comprehensive Income</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">003 - Statement - Consolidated Balance Sheets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-balance-sheets-parentheticals" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">004 - Statement - Consolidated Balance Sheets (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-stockholders-equity" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">005 - Statement - Consolidated Statements of Stockholders' Equity</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-stockholders-equity-parentheticals" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">006 - Statement - Consolidated Statements of Stockholders' Equity (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-cash-flows" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">007 - Statement - Consolidated Statements of Cash Flows</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-consolidated-statements-of-cash-flows-parentheticals" roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">008 - Statement - Consolidated Statements of Cash Flows (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-organization" roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">009 - Disclosure - Note 1 - Organization</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-summary-of-significant-accounting-policies" roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">010 - Disclosure - Note 2 - Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">011 - Disclosure - Note 3 - Business Combinations</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-discontinued-operations" roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">012 - Disclosure - Note 4 - Discontinued Operations</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories" roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">013 - Disclosure - Note 5 - Inventories</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-property-and-equipment" roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">014 - Disclosure - Note 6 - Property and Equipment</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-goodwill-and-intangible-assets-" roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">015 - Disclosure - Note 7 - Goodwill and Intangible Assets</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-line-of-credit-and-longterm-debt" roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">016 - Disclosure - Note 8 - Line of Credit and Long-term Debt</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">017 - Disclosure - Note 9 - Leases</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-fair-value-measurements" roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">018 - Disclosure - Note 10 - Fair Value Measurements</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-derivative-instruments-and-hedging-activities" roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">019 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-retirement-plans" roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">020 - Disclosure - Note 12 - Retirement Plans</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-sharebased-compensation" roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">021 - Disclosure - Note 13 - Share-based Compensation</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-14-commitments-and-contingencies" roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">022 - Disclosure - Note 14 - Commitments and Contingencies</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">023 - Disclosure - Note 15 - Revenue</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">024 - Disclosure - Note 16 - Income Taxes</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">025 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-restructuring-" roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">026 - Disclosure - Note 18 - Restructuring</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts" roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">027 - Disclosure - Schedule II - Valuation and Qualifying Accounts</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-significant-accounting-policies-policies" roleURI="http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">028 - Disclosure - Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-summary-of-significant-accounting-policies-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">029 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">030 - Disclosure - Note 3 - Business Combinations (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">031 - Disclosure - Note 5 - Inventories (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-property-and-equipment-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">032 - Disclosure - Note 6 - Property and Equipment (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-goodwill-and-intangible-assets-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">033 - Disclosure - Note 7 - Goodwill and Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-line-of-credit-and-longterm-debt-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">034 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">035 - Disclosure - Note 9 - Leases (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-fair-value-measurements-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">036 - Disclosure - Note 10 - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-sharebased-compensation-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">037 - Disclosure - Note 13 - Share-based Compensation (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">038 - Disclosure - Note 15 - Revenue (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">039 - Disclosure - Note 16 - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">040 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts-tables" roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">041 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Tables)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-1-organization-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">042 - Disclosure - Note 1 - Organization (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-summary-of-significant-accounting-policies-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">043 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">044 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">045 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">046 - Disclosure - Note 3 - Business Combinations (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">047 - Disclosure - Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations-intangible-assets-acquired-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">048 - Disclosure - Note 3 - Business Combinations - Intangible Assets Acquired (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-3-business-combinations-pro-forma-summary-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">049 - Disclosure - Note 3 - Business Combinations - Pro Forma Summary (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-4-discontinued-operations-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">050 - Disclosure - Note 4 - Discontinued Operations (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-5-inventories-components-of-inventories-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">051 - Disclosure - Note 5 - Inventories - Components of Inventories (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-property-and-equipment-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">052 - Disclosure - Note 6 - Property and Equipment (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-6-property-and-equipment-property-plant-and-equipment-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">053 - Disclosure - Note 6 - Property and Equipment - Property, Plant and Equipment (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">054 - Disclosure - Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">055 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">056 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-line-of-credit-and-longterm-debt-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">057 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">058 - Disclosure - Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">059 - Disclosure - Note 9 - Leases (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">060 - Disclosure - Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-lease-cost-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">061 - Disclosure - Note 9 - Leases - Lease Cost (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-future-maturities-of-lease-liabilities-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">062 - Disclosure - Note 9 - Leases - Future Maturities of Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">063 - Disclosure - Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">064 - Disclosure - Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">065 - Disclosure - Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-11-derivative-instruments-and-hedging-activities-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">066 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-12-retirement-plans-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">067 - Disclosure - Note 12 - Retirement Plans (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-sharebased-compensation-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">068 - Disclosure - Note 13 - Share-based Compensation (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note13-sharebased-compensation-sharebased-compensation-expense-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">069 - Disclosure - Note13 - Share-based Compensation - Share-based Compensation Expense (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">070 - Disclosure - Note 13 - Share-based Compensation - RSU and PSA Activity (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-14-commitments-and-contingencies-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">071 - Disclosure - Note 14 - Commitments and Contingencies (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue-1-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">072 - Disclosure - Note 15 - Revenue 1 (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue-2-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">073 - Disclosure - Note 15 - Revenue 2 (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">074 - Disclosure - Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-15-revenue-disaggregation-of-revenue-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">075 - Disclosure - Note 15 - Revenue - Disaggregation of Revenue (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">076 - Disclosure - Note 16 - Income Taxes (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-income-loss-from-continuing-operations-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">077 - Disclosure - Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">078 - Disclosure - Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">079 - Disclosure - Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">080 - Disclosure - Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">081 - Disclosure - Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">082 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">083 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details) (Parentheticals)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">084 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">085 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-note-18-restructuring-details-textual" roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">086 - Disclosure - Note 18 - Restructuring (Details Textual)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
      <link:roleType id="statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details">
        <link:definition xmlns="http://www.xbrl.org/2003/linkbase">087 - Disclosure - Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)</link:definition>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
        <link:usedOn>link:presentationLink</link:usedOn>
      </link:roleType>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element id="nwpx_AccruedLiabilitiesPolicyTextBlock" name="AccruedLiabilitiesPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_AccruedLiabilityMember" name="AccruedLiabilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" name="AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" name="AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" name="AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="nwpx_AmeronWaterTransmissionGroupLLCMember" name="AmeronWaterTransmissionGroupLLCMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_AtchisonFacilityMember" name="AtchisonFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_BacklogMember" name="BacklogMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" name="BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" name="BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" name="BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" name="BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" name="CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" name="CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" name="CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" name="CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" name="ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" name="DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" name="DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" name="DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" name="DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_DeferredTaxAssetTradeReceivableNet" name="DeferredTaxAssetTradeReceivableNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_DeferredTaxLiabilitiesContractAssetsNet" name="DeferredTaxLiabilitiesContractAssetsNet" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="nwpx_DefinedContributionPlanMember" name="DefinedContributionPlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_DefinedContributionPlanNumberOfInvestmentOptions" name="DefinedContributionPlanNumberOfInvestmentOptions" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="nwpx_DemobilizationActivitiesMember" name="DemobilizationActivitiesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" name="DepreciationAndFinanceLeaseRightOfUseAssetAmortization" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_DocumentAndEntityInformation" name="DocumentAndEntityInformation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" name="EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" name="EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" name="EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_EquipmentUnderFinanceLeaseMember" name="EquipmentUnderFinanceLeaseMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_EstimatedCostOfEPASelectedRemedy" name="EstimatedCostOfEPASelectedRemedy" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_EstimatedTimeToCompleteSelectedEPARemedy" name="EstimatedTimeToCompleteSelectedEPARemedy" nillable="true" substitutionGroup="xbrli:item" type="xbrli:durationItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_GainLossOnDispositionOfFacility" name="GainLossOnDispositionOfFacility" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_GainOnInsuranceProceeds" name="GainOnInsuranceProceeds" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_GenevaPipeCompanyIncMember" name="GenevaPipeCompanyIncMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" name="IncomeTaxReconciliationTaxFederalAndStateTaxCredits" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" name="IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" name="InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_LeaseLiability" name="LeaseLiability" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="credit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_LeaseRightOfUseAsset" name="LeaseRightOfUseAsset" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" name="LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" name="LesseeLeaseAssetsAndLiabilitiesTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_LesseeLeaseDisclosureTextBlock" name="LesseeLeaseDisclosureTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_LesseeLiabilityMaturityTableTextBlock" name="LesseeLiabilityMaturityTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_LowerWillametteGroupMember" name="LowerWillametteGroupMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_MaximumSeniorLeverageRatio" name="MaximumSeniorLeverageRatio" nillable="true" substitutionGroup="xbrli:item" type="xbrli:pureItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_MinimumFixedChargeCoverageRatio" name="MinimumFixedChargeCoverageRatio" nillable="true" substitutionGroup="xbrli:item" type="xbrli:pureItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="nwpx_MonterreyMexicoFacilityMember" name="MonterreyMexicoFacilityMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_NonqualifiedRetirementSavingsPlanMember" name="NonqualifiedRetirementSavingsPlanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_NoteToFinancialStatementDetailsTextual" name="NoteToFinancialStatementDetailsTextual" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_NotesToFinancialStatements" name="NotesToFinancialStatements" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_NotesToFinancialStatementsAbstract" name="NotesToFinancialStatementsAbstract" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_NumberOfActiveStockIncentivePlans" name="NumberOfActiveStockIncentivePlans" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" name="NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_NumberOfMajorCustomers" name="NumberOfMajorCustomers" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_NumberOfNoncontributoryDefinedBenefitPlans" name="NumberOfNoncontributoryDefinedBenefitPlans" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_NumberOfPotentiallyResponsibleParties" name="NumberOfPotentiallyResponsibleParties" nillable="true" substitutionGroup="xbrli:item" type="xbrli:integerItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" name="OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_OperatingLossCarryforwardsExpirationYear" name="OperatingLossCarryforwardsExpirationYear" nillable="true" substitutionGroup="xbrli:item" type="xbrli:gYearItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" name="OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_OtherLongtermLiabilitiesMember" name="OtherLongtermLiabilitiesMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_OutOfPeriodAdjustmentMember" name="OutOfPeriodAdjustmentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_PerformanceAwardsIssuedMultiplier" name="PerformanceAwardsIssuedMultiplier" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PlacedInEscrowUnitilFebruary2018Member" name="PlacedInEscrowUnitilFebruary2018Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PlacedInEscrowUntilDecember2018Member" name="PlacedInEscrowUntilDecember2018Member" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" name="PortlandHarborNaturalreSourcesTrusteeCouncilMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PortlandHarborSuperfundSiteMember" name="PortlandHarborSuperfundSiteMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ProceedsFromSaleOfFacility" name="ProceedsFromSaleOfFacility" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PropertyAndEquipmentMember" name="PropertyAndEquipmentMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_PropertyInHoustonTexasMember" name="PropertyInHoustonTexasMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" name="PropertyPlantAndEquipmentNetExcludingConstructionInProgress" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" name="RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" nillable="true" substitutionGroup="xbrli:item" type="num:percentItemType" xbrli:periodType="instant"/>
  <xsd:element abstract="true" id="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" name="RestrictedStockUnitsAndPerformanceStockAwardsMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_RetirementPlanExpense" name="RetirementPlanExpense" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:balance="debit" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" name="ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" name="ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" name="ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" name="SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" nillable="true" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" nillable="true" substitutionGroup="xbrli:item" type="xbrli:sharesItemType" xbrli:periodType="instant"/>
  <xsd:element id="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" name="ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" nillable="true" substitutionGroup="xbrli:item" type="num:perShareItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" name="SummaryOfValuationAndQualifyingAccountsTableTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_TaxCreditCarryforwardExpirationYear" name="TaxCreditCarryforwardExpirationYear" nillable="true" substitutionGroup="xbrli:item" type="xbrli:gYearItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_TermLoanMember" name="TermLoanMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_WellsFargoBankNAMember" name="WellsFargoBankNAMember" nillable="true" substitutionGroup="xbrli:item" type="nonnum:domainItemType" xbrli:periodType="duration"/>
  <xsd:element id="nwpx_WorkersCompensationInsurancePolicyTextBlock" name="WorkersCompensationInsurancePolicyTextBlock" nillable="true" substitutionGroup="xbrli:item" type="nonnum:textBlockItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" name="statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-10-fair-value-measurements-tables" name="statement-statement-note-10-fair-value-measurements-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" name="statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-13-sharebased-compensation-tables" name="statement-statement-note-13-sharebased-compensation-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" name="statement-statement-note-15-revenue-disaggregation-of-revenue-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" name="statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-15-revenue-tables" name="statement-statement-note-15-revenue-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" name="statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" name="statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" name="statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" name="statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" name="statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-16-income-taxes-tables" name="statement-statement-note-16-income-taxes-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" name="statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" name="statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" name="statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" name="statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" name="statement-statement-note-17-accumulated-other-comprehensive-loss-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" name="statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" name="statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" name="statement-statement-note-2-summary-of-significant-accounting-policies-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" name="statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" name="statement-statement-note-3-business-combinations-intangible-assets-acquired-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" name="statement-statement-note-3-business-combinations-pro-forma-summary-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-3-business-combinations-tables" name="statement-statement-note-3-business-combinations-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-5-inventories-components-of-inventories-details" name="statement-statement-note-5-inventories-components-of-inventories-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-5-inventories-tables" name="statement-statement-note-5-inventories-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" name="statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-6-property-and-equipment-tables" name="statement-statement-note-6-property-and-equipment-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" name="statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" name="statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" name="statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" name="statement-statement-note-7-goodwill-and-intangible-assets-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" name="statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" name="statement-statement-note-8-line-of-credit-and-longterm-debt-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" name="statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-lease-cost-details" name="statement-statement-note-9-leases-lease-cost-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" name="statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" name="statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" name="statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note-9-leases-tables" name="statement-statement-note-9-leases-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" name="statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" name="statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" name="statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
  <xsd:element abstract="true" id="nwpx_statement-statement-significant-accounting-policies-policies" name="statement-statement-significant-accounting-policies-policies" nillable="true" substitutionGroup="xbrli:item" type="xbrli:stringItemType" xbrli:periodType="duration"/>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>9
<FILENAME>nwpx-20201231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:58PM UTC 2021-03-04--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" 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.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentCarryingAmount" xlink:label="us-gaap_DebtInstrumentCarryingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtInstrumentCarryingAmount" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtInstrumentCarryingAmount" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DebtInstrumentCarryingAmount" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainOnInsuranceProceeds" xlink:label="nwpx_GainOnInsuranceProceeds" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ProceedsFromSaleOfFacility" xlink:label="nwpx_ProceedsFromSaleOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:label="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:label="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="arc"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_OtherNoncashIncomeExpense" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="7" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="nwpx_GainOnInsuranceProceeds" xlink:type="arc"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:calculationArc order="11" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="nwpx_GainLossOnDispositionOfFacility" xlink:type="arc"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:type="arc"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="nwpx_ProceedsFromSaleOfFacility" xlink:type="arc"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_FinanceLeasePrincipalPayments" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="6" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:label="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:href="nwpx-20201231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Assets" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-operations" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeInterestAndDividend" xlink:label="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="nwpx_GainLossOnDispositionOfFacility" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="arc"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="us-gaap_AccruedBonusesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilitiesCurrent" xlink:label="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedBonusesCurrent" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories-components-of-inventories-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventorySuppliesNetOfReserves" xlink:label="us-gaap_InventorySuppliesNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventorySuppliesNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseLiability" xlink:label="nwpx_LeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseRightOfUseAsset" xlink:label="nwpx_LeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_LeaseRightOfUseAsset" xlink:to="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_LeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_LeaseLiability" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_LeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-lease-cost-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_FinanceLeaseInterestExpense" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:type="arc"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="arc"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="arc"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxAssetTradeReceivableNet" xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsOther" xlink:type="arc"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:calculationArc order="0" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:type="arc"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="arc"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxAssetsNet" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_DeferredTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:calculationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:type="locator"/>
    <link:calculationArc order="0" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:type="arc"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>10
<FILENAME>nwpx-20201231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:58PM UTC 2021-03-04--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" 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:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:label="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-document-and-entity-information" xlink:href="nwpx-20201231.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentAnnualReport" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentTransitionReport" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFileNumber" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityTaxIdentificationNumber" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine1" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCityOrTown" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressStateOrProvince" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressPostalZipCode" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CityAreaCode" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_LocalPhoneNumber" xlink:type="arc"/>
    <link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
    <link:definitionArc order="21" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:definitionArc order="22" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SecurityExchangeName" xlink:type="arc"/>
    <link:definitionArc order="23" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:definitionArc order="24" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:definitionArc order="25" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:definitionArc order="26" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:definitionArc order="27" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:definitionArc order="28" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:definitionArc order="29" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:definitionArc order="30" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:definitionArc order="31" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityPublicFloat" xlink:type="arc"/>
    <link:definitionArc order="32" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization" xlink:href="nwpx-20201231.xsd#statement-note-1-organization" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-1-organization" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OutOfPeriodAdjustmentMember" xlink:label="nwpx_OutOfPeriodAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="nwpx_OutOfPeriodAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations" xlink:href="nwpx-20201231.xsd#statement-note-4-discontinued-operations" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AtchisonFacilityMember" xlink:label="nwpx_AtchisonFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUntilDecember2018Member" xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:to="nwpx_AtchisonFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DisposalGroupClassificationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupClassificationDomain" xlink:to="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupClassificationDomain" xlink:to="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_MX" xlink:label="country_MX" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MonterreyMexicoFacilityMember" xlink:label="nwpx_MonterreyMexicoFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyInHoustonTexasMember" xlink:label="nwpx_PropertyInHoustonTexasMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_MX" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="nwpx_MonterreyMexicoFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="nwpx_PropertyInHoustonTexasMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases" xlink:href="nwpx-20201231.xsd#statement-note-9-leases" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseDisclosureTextBlock" xlink:label="nwpx_LesseeLeaseDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="nwpx_LesseeLeaseDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities" xlink:href="nwpx-20201231.xsd#statement-note-11-derivative-instruments-and-hedging-activities" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignExchangeForwardMember" xlink:label="us-gaap_ForeignExchangeForwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_ForeignExchangeForwardMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans" xlink:href="nwpx-20201231.xsd#statement-note-12-retirement-plans" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanMember" xlink:label="nwpx_DefinedContributionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncurrentAssetsMember" xlink:label="us-gaap_OtherNoncurrentAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RetirementPlanTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="nwpx_DefinedContributionPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherNoncurrentAssetsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies" xlink:href="nwpx-20201231.xsd#statement-note-14-commitments-and-contingencies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LowerWillametteGroupMember" xlink:label="nwpx_LowerWillametteGroupMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborSuperfundSiteMember" xlink:label="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteAxis" xlink:label="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FireMember" xlink:label="us-gaap_FireMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CounterpartyNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="nwpx_LowerWillametteGroupMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EnvironmentalRemediationSiteDomain" xlink:to="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_NoncatastrophicEventAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_FireMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalLossCarryforwardMember" xlink:label="us-gaap_CapitalLossCarryforwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_CapitalLossCarryforwardMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-" xlink:href="nwpx-20201231.xsd#statement-note-18-restructuring-" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DemobilizationActivitiesMember" xlink:label="nwpx_DemobilizationActivitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="nwpx_DemobilizationActivitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies" xlink:href="nwpx-20201231.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:label="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:label="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:label="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativesPolicyTextBlock" xlink:label="us-gaap_DerivativesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:label="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="us-gaap_ReceivablesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_DerivativesPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc"/>
    <link:definitionArc order="21" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConcentrationRiskCreditRisk" xlink:type="arc"/>
    <link:definitionArc order="22" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:label="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:label="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:label="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:label="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:label="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:label="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:label="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-1-organization-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OutOfPeriodAdjustmentMember" xlink:label="nwpx_OutOfPeriodAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="nwpx_OutOfPeriodAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:label="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-4-discontinued-operations-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AtchisonFacilityMember" xlink:label="nwpx_AtchisonFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUntilDecember2018Member" xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:label="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EscrowDepositsRelatedToPropertySales" xlink:label="us-gaap_EscrowDepositsRelatedToPropertySales" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:to="nwpx_AtchisonFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DisposalGroupClassificationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupClassificationDomain" xlink:to="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DisposalGroupClassificationDomain" xlink:to="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EscrowDepositsRelatedToPropertySales" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_MX" xlink:label="country_MX" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MonterreyMexicoFacilityMember" xlink:label="nwpx_MonterreyMexicoFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyInHoustonTexasMember" xlink:label="nwpx_PropertyInHoustonTexasMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_MX" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="nwpx_MonterreyMexicoFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="nwpx_PropertyInHoustonTexasMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MaximumSeniorLeverageRatio" xlink:label="nwpx_MaximumSeniorLeverageRatio" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MinimumFixedChargeCoverageRatio" xlink:label="nwpx_MinimumFixedChargeCoverageRatio" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentPeriodicPayment" xlink:label="us-gaap_DebtInstrumentPeriodicPayment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestCostsCapitalized" xlink:label="us-gaap_InterestCostsCapitalized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_MaximumSeniorLeverageRatio" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_MinimumFixedChargeCoverageRatio" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestCostsCapitalized" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCredit" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentPeriodicPayment" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="us-gaap_OperatingLeasesRentExpenseNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesRentExpenseNet" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:label="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:label="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignExchangeForwardMember" xlink:label="us-gaap_ForeignExchangeForwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:label="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_ForeignExchangeForwardMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeNotionalAmount" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-12-retirement-plans-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanMember" xlink:label="nwpx_DefinedContributionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RetirementPlanExpense" xlink:label="nwpx_RetirementPlanExpense" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:label="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncurrentAssetsMember" xlink:label="us-gaap_OtherNoncurrentAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RetirementPlanTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="nwpx_DefinedContributionPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherNoncurrentAssetsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RetirementPlanExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfActiveStockIncentivePlans" xlink:label="nwpx_NumberOfActiveStockIncentivePlans" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PerformanceAwardsIssuedMultiplier" xlink:label="nwpx_PerformanceAwardsIssuedMultiplier" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:label="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfActiveStockIncentivePlans" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_PerformanceAwardsIssuedMultiplier" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:type="arc"/>
    <link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-14-commitments-and-contingencies-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedCostOfEPASelectedRemedy" xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LowerWillametteGroupMember" xlink:label="nwpx_LowerWillametteGroupMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfPotentiallyResponsibleParties" xlink:label="nwpx_NumberOfPotentiallyResponsibleParties" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborSuperfundSiteMember" xlink:label="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteAxis" xlink:label="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FireMember" xlink:label="us-gaap_FireMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:label="us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CounterpartyNameAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="nwpx_LowerWillametteGroupMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EnvironmentalRemediationSiteDomain" xlink:to="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_NoncatastrophicEventAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_FireMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfPotentiallyResponsibleParties" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EstimatedCostOfEPASelectedRemedy" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-1-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfMajorCustomers" xlink:label="nwpx_NumberOfMajorCustomers" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-default" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfMajorCustomers" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-2-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OperatingLossCarryforwardsExpirationYear" xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TaxCreditCarryforwardExpirationYear" xlink:label="nwpx_TaxCreditCarryforwardExpirationYear" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalLossCarryforwardMember" xlink:label="us-gaap_CapitalLossCarryforwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:label="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_RangeMember" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_CapitalLossCarryforwardMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCreditCarryforwardAmount" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_TaxCreditCarryforwardExpirationYear" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLossCarryforwards" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_OperatingLossCarryforwardsExpirationYear" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-18-restructuring-details-textual" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DemobilizationActivitiesMember" xlink:label="nwpx_DemobilizationActivitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="nwpx_DemobilizationActivitiesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-cash-flows-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIncomeTaxRefunds" xlink:label="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:label="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentCarryingAmount" xlink:label="us-gaap_DebtInstrumentCarryingAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-default" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentCarryingAmount" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainOnInsuranceProceeds" xlink:label="nwpx_GainOnInsuranceProceeds" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ProceedsFromSaleOfFacility" xlink:label="nwpx_ProceedsFromSaleOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:label="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:label="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:label="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_GainLossOnDispositionOfFacility" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_GainOnInsuranceProceeds" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="nwpx_ProceedsFromSaleOfFacility" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_FinanceLeasePrincipalPayments" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="18" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="19" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="20" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="21" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="22" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:label="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossMember" xlink:label="us-gaap_AllowanceForCreditLossMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ValuationAllowancesAndReservesDomain" xlink:to="us-gaap_AllowanceForCreditLossMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ValuationAllowancesAndReservesDomain" xlink:to="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:href="nwpx-20201231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-operations" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeInterestAndDividend" xlink:label="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_GainLossOnDispositionOfFacility" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="us-gaap_AccruedBonusesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilitiesCurrent" xlink:label="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedBonusesCurrent" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BacklogMember" xlink:label="nwpx_BacklogMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:label="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="nwpx_BacklogMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories-components-of-inventories-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventorySuppliesNetOfReserves" xlink:label="us-gaap_InventorySuppliesNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventorySuppliesNetOfReserves" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EquipmentUnderFinanceLeaseMember" xlink:label="nwpx_EquipmentUnderFinanceLeaseMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="nwpx_EquipmentUnderFinanceLeaseMember" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_ConstructionInProgressMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="us-gaap_OtherIntangibleAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TrademarksAndTradeNamesMember" xlink:label="us-gaap_TrademarksAndTradeNamesMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_TrademarksAndTradeNamesMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_OtherIntangibleAssetsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseLiability" xlink:label="nwpx_LeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseRightOfUseAsset" xlink:label="nwpx_LeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyAndEquipmentMember" xlink:label="nwpx_PropertyAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="nwpx_PropertyAndEquipmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_LeaseRightOfUseAsset" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_LeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-lease-cost-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseInterestExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShortTermLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_VariableLeaseCost" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCost" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasePayments" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeasePrincipalPayments" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel1Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueInputsLevel3Member" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLiabilities" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:href="nwpx-20201231.xsd#statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_CostOfSalesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_US" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_SegmentGeographicalDomain" xlink:to="country_CA" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredAtPointInTimeMember" xlink:label="us-gaap_TransferredAtPointInTimeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredOverTimeMember" xlink:label="us-gaap_TransferredOverTimeMember" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:to="us-gaap_TransferredOverTimeMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:to="us-gaap_TransferredAtPointInTimeMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxAssetTradeReceivableNet" xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsMember" xlink:label="us-gaap_OtherAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_OtherAssetsMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsInventory" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOther" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:definitionArc order="9" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="10" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="11" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:definitionArc order="12" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="arc"/>
    <link:definitionArc order="13" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:type="arc"/>
    <link:definitionArc order="14" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="15" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilities" xlink:type="arc"/>
    <link:definitionArc order="16" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc"/>
    <link:definitionArc order="17" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-stockholders-equity" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201802Member" xlink:label="us-gaap_AccountingStandardsUpdate201802Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember-default" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_AccountingStandardsUpdate201802Member" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:type="arc"/>
    <link:definitionArc order="6" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="7" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="arc"/>
    <link:definitionArc order="8" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:definitionLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain-default" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain-default" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain-default" xlink:type="arc"/>
    <link:definitionArc order="0" xbrldt:closed="true" xbrldt:contextElement="segment" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:definitionArc order="1" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:definitionArc order="2" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:definitionArc order="3" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:definitionArc order="4" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:definitionArc order="5" xbrldt:closed="true" xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>11
<FILENAME>nwpx-20201231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:58PM UTC 2021-03-04--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" 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/negatedLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel" xlink:type="simple"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DocumentAndEntityInformation" xlink:label="nwpx_DocumentAndEntityInformation" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DocumentAndEntityInformation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document And Entity Information</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DocumentAndEntityInformation" xlink:to="nwpx_DocumentAndEntityInformation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeNotionalAmount</link:label>
    <link:label xlink:label="us-gaap_DerivativeNotionalAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, Notional Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeNotionalAmount" xlink:to="us-gaap_DerivativeNotionalAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NoteToFinancialStatementDetailsTextual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note To Financial Statement Details Textual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="nwpx_NoteToFinancialStatementDetailsTextual-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-significant-accounting-policies-policies" xlink:label="nwpx_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-significant-accounting-policies-policies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-significant-accounting-policies-policies" xlink:to="nwpx_statement-statement-significant-accounting-policies-policies-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Summary of Significant Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:to="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income tax expense at federal statutory rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-tables" xlink:label="nwpx_statement-statement-note-3-business-combinations-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-3-business-combinations-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Business Combinations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-3-business-combinations-tables" xlink:to="nwpx_statement-statement-note-3-business-combinations-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:type="locator"/>
    <link:label xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage</link:label>
    <link:label xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Stock Units and Performance Share Award Target Level, Percentage</link:label>
    <link:label xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the target level percentage for restricted stock unit and performance share awards.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-5-inventories-tables" xlink:label="nwpx_statement-statement-note-5-inventories-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-5-inventories-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-5-inventories-tables" xlink:to="nwpx_statement-statement-note-5-inventories-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:label="nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-6-property-and-equipment-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Property and Equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:to="nwpx_statement-statement-note-6-property-and-equipment-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Goodwill and Intangible Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:to="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NondesignatedMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NondesignatedMember" xlink:to="us-gaap_NondesignatedMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Line of Credit and Long-term Debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:to="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-tables" xlink:label="nwpx_statement-statement-note-9-leases-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-tables" xlink:to="nwpx_statement-statement-note-9-leases-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Fair Value Measurements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:to="nwpx_statement-statement-note-10-fair-value-measurements-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Trade and other receivables</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Share-based Compensation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:to="nwpx_statement-statement-note-13-sharebased-compensation-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-tables" xlink:label="nwpx_statement-statement-note-15-revenue-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-15-revenue-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 15 - Revenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-15-revenue-tables" xlink:to="nwpx_statement-statement-note-15-revenue-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_HedgingDesignationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-tables" xlink:label="nwpx_statement-statement-note-16-income-taxes-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-tables" xlink:to="nwpx_statement-statement-note-16-income-taxes-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_HedgingDesignationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_HedgingDesignationDomain" xlink:to="us-gaap_HedgingDesignationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Accumulated Other Comprehensive Loss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:to="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Designated as Hedging Instrument [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:to="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrent" xlink:to="us-gaap_LiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Maturities of Long-term Debt [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:to="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:to="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:to="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Business Combinations - Intangible Assets Acquired (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:to="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 3 - Business Combinations - Pro Forma Summary (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:to="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:label="nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-5-inventories-components-of-inventories-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 5 - Inventories - Components of Inventories (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:to="nwpx_statement-statement-note-5-inventories-components-of-inventories-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Total purchase consideration</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationConsiderationTransferred1</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:label="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 6 - Property and Equipment - Property, Plant and Equipment (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:to="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:to="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent</link:label>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Pension liability adjustment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:label="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinitelivedIntangibleAssetsAcquired1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Asset Acquired, Fair Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:to="us-gaap_FinitelivedIntangibleAssetsAcquired1-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:to="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:to="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Asset Acquired, Useful Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:to="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:label="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:to="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents schedule of changes in accumulated other comprehensive income loss.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:to="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:label="nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-lease-cost-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases - Lease Cost (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:to="nwpx_statement-statement-note-9-leases-lease-cost-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:label="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases - Future Maturities of Lease Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:to="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:label="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:to="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:label="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:to="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">RSUs and PSAs granted, weighted average grant date fair value (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" 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 (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:to="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Percentage of Voting Interests Acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">RSUs and PSAs vested (2) (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilitiesCurrent" xlink:label="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign currency forward contracts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeLiabilitiesCurrent" xlink:to="us-gaap_DerivativeLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:label="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note13 - Share-based Compensation - Share-based Compensation Expense (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:to="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 13 - Share-based Compensation - RSU and PSA Activity (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:to="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs canceled, weighted average grant date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:label="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:to="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs canceled (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:label="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 15 - Revenue - Disaggregation of Revenue (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:to="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:to="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss</link:label>
    <link:label xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Bargain purchase gain</link:label>
    <link:label xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to bargain purchase gain (loss).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Unvested RSUs and PSAs (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:to="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax windfall on share-based compensation</link:label>
    <link:label xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to the tax windfall on stock based compensation.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:to="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DeferredTaxLiabilitiesContractAssetsNet</link:label>
    <link:label xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Contract assets, net</link:label>
    <link:label xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of deferred tax liabilities attributable to net contract assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:to="nwpx_DeferredTaxLiabilitiesContractAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:label="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other comprehensive loss before reclassifications</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:to="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:to="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent</link:label>
    <link:label xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amounts reclassified from Accumulated other comprehensive loss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:to="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:to="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">RSUs and PSAs granted (in shares)</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:to="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details) (Parentheticals)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:to="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">RSUs and PSAs vested (2) (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:to="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:to="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current portion of long-term debt</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: Current portion of long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtCurrent" xlink:to="us-gaap_LongTermDebtCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="locator"/>
    <link:label xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:to="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment</link:label>
    <link:label xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Increase (Decrease) in Inventories, Measurement Period Adjustment</link:label>
    <link:label xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The increase (decrease) during the reporting period for business acquisition due to measurement period adjustment in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:to="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other comprehensive income (loss), net of tax:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatements" xlink:label="nwpx_NotesToFinancialStatements" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NotesToFinancialStatements-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NotesToFinancialStatements" xlink:to="nwpx_NotesToFinancialStatements-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NotesToFinancialStatementsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Notes To Financial Statements [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="nwpx_NotesToFinancialStatementsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress</link:label>
    <link:label xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net, Excluding Construction In Progress</link:label>
    <link:label xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services excluding construction in progress and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:to="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Pro Forma Information [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net sales</link:label>
    <link:label xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessAcquisitionsProFormaRevenue</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of operating lease liabilities assumed at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DemobilizationActivitiesMember" xlink:label="nwpx_DemobilizationActivitiesMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DemobilizationActivitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Demobilization Activities [Member]</link:label>
    <link:label xlink:label="nwpx_DemobilizationActivitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Demobilization activities associated with exit from or disposal of business activities or restructurings pursuant to a plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DemobilizationActivitiesMember" xlink:to="nwpx_DemobilizationActivitiesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating lease right-of-use assets</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of operating lease right-of-use assets acquired at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_GenevaPipeCompanyIncMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geneva Pipe Company, Inc. [Member]</link:label>
    <link:label xlink:label="nwpx_GenevaPipeCompanyIncMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information pertaining to Geneva Pipe Company, Inc. acquisition.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_GenevaPipeCompanyIncMember" xlink:to="nwpx_GenevaPipeCompanyIncMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfGoodwillTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued liabilities</link:label>
    <link:label xlink:label="us-gaap_AccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total accrued liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedLiabilitiesCurrent" xlink:to="us-gaap_AccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PensionPlansDefinedBenefitMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Plan [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionPlansDefinedBenefitMember" xlink:to="us-gaap_PensionPlansDefinedBenefitMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountsPayableCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountsPayableCurrent" xlink:to="us-gaap_AccountsPayableCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevolvingCreditFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revolving Credit Facility [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevolvingCreditFacilityMember" xlink:to="us-gaap_RevolvingCreditFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetirementPlanTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Plan Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="us-gaap_AccruedBonusesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedBonusesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued bonus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedBonusesCurrent" xlink:to="us-gaap_AccruedBonusesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetirementPlanTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Plan Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetirementPlanTypeDomain" xlink:to="us-gaap_RetirementPlanTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued property and equipment purchases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from sale of property and equipment</link:label>
    <link:label xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TaxCreditCarryforwardExpirationYear" xlink:label="nwpx_TaxCreditCarryforwardExpirationYear" xlink:type="locator"/>
    <link:label xlink:label="nwpx_TaxCreditCarryforwardExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_TaxCreditCarryforwardExpirationYear</link:label>
    <link:label xlink:label="nwpx_TaxCreditCarryforwardExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Expiration Year</link:label>
    <link:label xlink:label="nwpx_TaxCreditCarryforwardExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Expiration year of the tax credit carryforward.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_TaxCreditCarryforwardExpirationYear" xlink:to="nwpx_TaxCreditCarryforwardExpirationYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Workers compensation reserves</link:label>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Workers' Compensation Liability, Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WorkersCompensationLiabilityCurrent" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CreditFacilityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Credit Facility [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CreditFacilityDomain" xlink:to="us-gaap_CreditFacilityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherAccruedLiabilitiesCurrent</link:label>
    <link:label xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EscrowDepositsRelatedToPropertySales" xlink:label="us-gaap_EscrowDepositsRelatedToPropertySales" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EscrowDepositsRelatedToPropertySales-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EscrowDepositsRelatedToPropertySales</link:label>
    <link:label xlink:label="us-gaap_EscrowDepositsRelatedToPropertySales-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Escrow Deposits Related to Property Sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EscrowDepositsRelatedToPropertySales" xlink:to="us-gaap_EscrowDepositsRelatedToPropertySales-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:type="locator"/>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Matching Percentage on First Eight Percent of Employee Contributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company matching percentage on first 8% of employee contributions under defined contribution retirement plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:to="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PolicyTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_PolicyTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_PolicyTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccruedVacationCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued vacation payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccruedVacationCurrent" xlink:to="us-gaap_AccruedVacationCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TrademarksAndTradeNamesMember" xlink:label="us-gaap_TrademarksAndTradeNamesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TrademarksAndTradeNamesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trademarks and Trade Names [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TrademarksAndTradeNamesMember" xlink:to="us-gaap_TrademarksAndTradeNamesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TradeNamesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade Names [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TradeNamesMember" xlink:to="us-gaap_TradeNamesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborSuperfundSiteMember" xlink:label="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PortlandHarborSuperfundSiteMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Portland Harbor Superfund Site [Member]</link:label>
    <link:label xlink:label="nwpx_PortlandHarborSuperfundSiteMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the Portland Harbor Superfund Site.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PortlandHarborSuperfundSiteMember" xlink:to="nwpx_PortlandHarborSuperfundSiteMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="us-gaap_OtherIntangibleAssetsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherIntangibleAssetsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Intangible Assets [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherIntangibleAssetsMember" xlink:to="us-gaap_OtherIntangibleAssetsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquireIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireIntangibleAssets" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OperatingLossCarryforwardsExpirationYear" xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear" xlink:type="locator"/>
    <link:label xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_OperatingLossCarryforwardsExpirationYear</link:label>
    <link:label xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards, Expiration Year</link:label>
    <link:label xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Expiration year of the operating loss carryforward.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_OperatingLossCarryforwardsExpirationYear" xlink:to="nwpx_OperatingLossCarryforwardsExpirationYear-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</link:label>
    <link:label xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Month)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares used in per share calculations:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxesPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid (received) during the period for income taxes (net of refunds of $153, $286 and $1)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxesPaidNet" xlink:to="us-gaap_IncomeTaxesPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:label="us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LossContingencyAccrualCarryingValueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LossContingencyAccrualCarryingValueCurrent</link:label>
    <link:label xlink:label="us-gaap_LossContingencyAccrualCarryingValueCurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss Contingency, Accrual, Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:to="us-gaap_LossContingencyAccrualCarryingValueCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplemental disclosure of cash flow information:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Assets</link:label>
    <link:label xlink:label="us-gaap_Assets-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Assets" xlink:to="us-gaap_Assets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:label="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Valuation and Qualifying Accounts [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">A schedule of allowance and reserve accounts including their beginning and ending balances, as well as a reconciliation by type of activity during the period. Alternatively, disclosure of the required information may be within the footnotes to the financial statements or a supplemental schedule to the financial statements.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:to="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</link:label>
    <link:label xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerRelationshipsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerRelationshipsMember" xlink:to="us-gaap_CustomerRelationshipsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BacklogMember" xlink:label="nwpx_BacklogMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BacklogMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Backlog [Member]</link:label>
    <link:label xlink:label="nwpx_BacklogMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information related to backlog.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BacklogMember" xlink:to="nwpx_BacklogMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income tax assets, included in Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Error Correction, Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Error Correction, Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AwardTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_AwardTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label xlink:label="us-gaap_NetIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetIncomeLoss" xlink:to="us-gaap_NetIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets, Accumulated amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total amortization expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestrictedStockUnitsRSUMember" xlink:to="us-gaap_RestrictedStockUnitsRSUMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:label="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from insurance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:to="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestCostsCapitalized" xlink:label="us-gaap_InterestCostsCapitalized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestCostsCapitalized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InterestCostsCapitalized</link:label>
    <link:label xlink:label="us-gaap_InterestCostsCapitalized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest Costs Capitalized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestCostsCapitalized" xlink:to="us-gaap_InterestCostsCapitalized-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainOnInsuranceProceeds" xlink:label="nwpx_GainOnInsuranceProceeds" xlink:type="locator"/>
    <link:label xlink:label="nwpx_GainOnInsuranceProceeds-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_GainOnInsuranceProceeds</link:label>
    <link:label xlink:label="nwpx_GainOnInsuranceProceeds-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gain on insurance proceeds</link:label>
    <link:label xlink:label="nwpx_GainOnInsuranceProceeds-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of gain on insurance proceeds recognized during the period.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_GainOnInsuranceProceeds" xlink:to="nwpx_GainOnInsuranceProceeds-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Trade and Other Receivables</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to trade and other receivables acquired in connection with a business combination for which the initial accounting was incomplete.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:to="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PerformanceSharesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PerformanceSharesMember" xlink:to="us-gaap_PerformanceSharesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeStockOptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement, Option [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeStockOptionMember" xlink:to="us-gaap_EmployeeStockOptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LossContingencyNatureDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency, Nature [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingencyNatureDomain" xlink:to="us-gaap_LossContingencyNatureDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAcquiredDuringPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquisition of Geneva (Note 3)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAcquiredDuringPeriod" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss Contingency Nature [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less accumulated depreciation and amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property and equipment, net</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net, Ending Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentNet" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label xlink:label="us-gaap_Goodwill-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Goodwill" xlink:to="us-gaap_Goodwill-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property and equipment, gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentGross" xlink:to="us-gaap_PropertyPlantAndEquipmentGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeInstrumentRiskAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeContractTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeContractTypeDomain" xlink:to="us-gaap_DerivativeContractTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net income per common share</link:label>
    <link:label xlink:label="us-gaap_EarningsPerShareAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income per share:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:label xlink:label="country_CA-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">CANADA</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_CA" xlink:to="country_CA-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments</link:label>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income before income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income tax expense (benefit)</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total income tax expense (benefit)</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Tax (expense) benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxExpenseBenefit" xlink:to="us-gaap_IncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:label="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months</link:label>
    <link:label xlink:label="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency Cash Flow Hedge Gain (Loss) to be Reclassified During Next 12 Months</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:to="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:type="locator"/>
    <link:label xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax</link:label>
    <link:label xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Revenue from Contract with Customers, Including Assessed Tax</link:label>
    <link:label xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The increase (decrease) during the period of the amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:to="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:label="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet</link:label>
    <link:label xlink:label="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:to="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:label="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax</link:label>
    <link:label xlink:label="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized Loss on Foreign Currency Derivatives, before Tax</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:to="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsPayable</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AtchisonFacilityMember" xlink:label="nwpx_AtchisonFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AtchisonFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Atchison Facility [Member]</link:label>
    <link:label xlink:label="nwpx_AtchisonFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information related to the Atchison facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AtchisonFacilityMember" xlink:to="nwpx_AtchisonFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension liability adjustment, tax expense/benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanFairValueOfPlanAssets</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Benefit Plan, Plan Assets, Amount, Ending Balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:to="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossMember" xlink:label="us-gaap_AllowanceForCreditLossMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForCreditLossMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Allowance, Credit Loss [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForCreditLossMember" xlink:to="us-gaap_AllowanceForCreditLossMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AllocatedShareBasedCompensationExpense</link:label>
    <link:label xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:label xlink:label="dei_AmendmentFlag-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ComprehensiveIncomeNetOfTax</link:label>
    <link:label xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Comprehensive income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
    <link:label xlink:label="dei_CityAreaCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UseOfEstimates-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UseOfEstimates" xlink:to="us-gaap_UseOfEstimates-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentPeriodicPayment" xlink:label="us-gaap_DebtInstrumentPeriodicPayment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentPeriodicPayment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentPeriodicPayment</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentPeriodicPayment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Debt, Monthly Repayment of Principal</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentPeriodicPayment" xlink:to="us-gaap_DebtInstrumentPeriodicPayment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued and other liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification, Comparability Adjustment [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</link:label>
    <link:label xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Disposition of Property Plant Equipment, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Benefit Plan, Assumptions Used Calculating Net Periodic Benefit Cost, Expected Long-term Rate of Return on Plan Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_SharesOutstanding</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balances (in shares)</link:label>
    <link:label xlink:label="us-gaap_SharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balances (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SharesOutstanding" xlink:to="us-gaap_SharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesOutstanding" xlink:to="us-gaap_CommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesOutstanding" xlink:to="us-gaap_PreferredStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtWeightedAverageInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtWeightedAverageInterestRate</link:label>
    <link:label xlink:label="us-gaap_DebtWeightedAverageInterestRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt, Weighted Average Interest Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtWeightedAverageInterestRate" xlink:to="us-gaap_DebtWeightedAverageInterestRate-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_CurrentFiscalYearEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CurrentFiscalYearEndDate" xlink:to="dei_CurrentFiscalYearEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Basis Spread on Variable Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Variable lease cost</link:label>
    <link:label xlink:label="us-gaap_VariableLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_VariableLeaseCost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableLeaseCost" xlink:to="us-gaap_VariableLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LeaseCost</link:label>
    <link:label xlink:label="us-gaap_LeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease cost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCost" xlink:to="us-gaap_LeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Benefit Plan, Assumptions Used Calculating Benefit Obligation, Discount Rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:label="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Benefit Plan, Accumulated Benefit Obligation</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:to="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalLossCarryforwardMember" xlink:label="us-gaap_CapitalLossCarryforwardMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CapitalLossCarryforwardMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capital Loss Carryforward [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CapitalLossCarryforwardMember" xlink:to="us-gaap_CapitalLossCarryforwardMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating leases, weighted-average discount rate</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalPeriodFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalPeriodFocus" xlink:to="dei_DocumentFiscalPeriodFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating lease cost</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeaseCost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseCost" xlink:to="us-gaap_OperatingLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentFiscalYearFocus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentFiscalYearFocus" xlink:to="dei_DocumentFiscalYearFocus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConsolidationPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConsolidationPolicyTextBlock" xlink:to="us-gaap_ConsolidationPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShortTermLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Short-term lease cost</link:label>
    <link:label xlink:label="us-gaap_ShortTermLeaseCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShortTermLeaseCost</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShortTermLeaseCost" xlink:to="us-gaap_ShortTermLeaseCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LeaseCostTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease, Cost [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LeaseCostTableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Right-of-use assets obtained in exchange for finance lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentPeriodEndDate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Right-of-use assets obtained in exchange for operating lease liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Operating leases, weighted-average remaining lease term (Year)</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityFileNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityEmergingGrowthCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentFaceAmount</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentFaceAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Face Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentFaceAmount" xlink:to="us-gaap_DebtInstrumentFaceAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentType-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:label xlink:label="dei_EntitySmallBusiness-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntitySmallBusiness" xlink:to="dei_EntitySmallBusiness-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityShellCompany-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityShellCompany" xlink:to="dei_EntityShellCompany-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentInformationLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentInformationTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Information [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationTable-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityPublicFloat-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityPublicFloat" xlink:to="dei_EntityPublicFloat-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityFilerCategory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFilerCategory" xlink:to="dei_EntityFilerCategory-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCurrentReportingStatus-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCurrentReportingStatus" xlink:to="dei_EntityCurrentReportingStatus-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Instrument, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentNameDomain" xlink:to="us-gaap_DebtInstrumentNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringCharges-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring expense</link:label>
    <link:label xlink:label="us-gaap_RestructuringCharges-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Charges, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCharges" xlink:to="us-gaap_RestructuringCharges-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityVoluntaryFilers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityVoluntaryFilers" xlink:to="dei_EntityVoluntaryFilers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationAcquisitionRelatedCosts</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Acquisition Related Costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityWellKnownSeasonedIssuer-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityWellKnownSeasonedIssuer" xlink:to="dei_EntityWellKnownSeasonedIssuer-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">London Interbank Offered Rate (LIBOR) [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateDomain" xlink:to="us-gaap_VariableRateDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyAndEquipmentMember" xlink:label="nwpx_PropertyAndEquipmentMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PropertyAndEquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property and Equipment [Member]</link:label>
    <link:label xlink:label="nwpx_PropertyAndEquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents property and equipment.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PropertyAndEquipmentMember" xlink:to="nwpx_PropertyAndEquipmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Assets and Liabilities [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The tabular disclosure for assets and liabilities of leases of the lessee.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:to="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EquipmentUnderFinanceLeaseMember" xlink:label="nwpx_EquipmentUnderFinanceLeaseMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EquipmentUnderFinanceLeaseMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment Under Finance Lease [Member]</link:label>
    <link:label xlink:label="nwpx_EquipmentUnderFinanceLeaseMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents equipment under finance lease.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EquipmentUnderFinanceLeaseMember" xlink:to="nwpx_EquipmentUnderFinanceLeaseMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_VariableRateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Variable Rate [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseRightOfUseAsset" xlink:label="nwpx_LeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_LeaseRightOfUseAsset</link:label>
    <link:label xlink:label="nwpx_LeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total right-of-use assets</link:label>
    <link:label xlink:label="nwpx_LeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of lessee's right to use underlying asset under lease.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LeaseRightOfUseAsset" xlink:to="nwpx_LeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskPercentage1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ConcentrationRiskPercentage1</link:label>
    <link:label xlink:label="us-gaap_ConcentrationRiskPercentage1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskPercentage1" xlink:to="us-gaap_ConcentrationRiskPercentage1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based compensation expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Trade and other receivables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:to="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityTaxIdentificationNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCentralIndexKey-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Covenant, Repayment Percentage of Excess Cash Flow</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The percentage of excess cash flow that repayment may be required under debt instrument covenant</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:to="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityRegistrantName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Covenant, Maximum Debt Percentage of Securing Property</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The percentage of specified real property securing the loan that the debt must not exceed according to covenant.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:to="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_MX" xlink:label="country_MX" xlink:type="locator"/>
    <link:label xlink:label="country_MX-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">MEXICO</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_MX" xlink:to="country_MX-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Term Loan [Member]</link:label>
    <link:label xlink:label="nwpx_TermLoanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information regarding a term loan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_TermLoanMember" xlink:to="nwpx_TermLoanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityDomain" xlink:to="dei_EntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CustomerConcentrationRiskMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CustomerConcentrationRiskMember" xlink:to="us-gaap_CustomerConcentrationRiskMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:label xlink:label="dei_LegalEntityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Legal Entity [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LegalEntityAxis" xlink:to="dei_LegalEntityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MinimumFixedChargeCoverageRatio" xlink:label="nwpx_MinimumFixedChargeCoverageRatio" xlink:type="locator"/>
    <link:label xlink:label="nwpx_MinimumFixedChargeCoverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_MinimumFixedChargeCoverageRatio</link:label>
    <link:label xlink:label="nwpx_MinimumFixedChargeCoverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum Fixed Charge Coverage Ratio</link:label>
    <link:label xlink:label="nwpx_MinimumFixedChargeCoverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The minimum fixed charge coverage ratio.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_MinimumFixedChargeCoverageRatio" xlink:to="nwpx_MinimumFixedChargeCoverageRatio-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityAddressAddressLine1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MaximumSeniorLeverageRatio" xlink:label="nwpx_MaximumSeniorLeverageRatio" xlink:type="locator"/>
    <link:label xlink:label="nwpx_MaximumSeniorLeverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_MaximumSeniorLeverageRatio</link:label>
    <link:label xlink:label="nwpx_MaximumSeniorLeverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum Senior Leverage Ratio</link:label>
    <link:label xlink:label="nwpx_MaximumSeniorLeverageRatio-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The maximum senior leverage ratio.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_MaximumSeniorLeverageRatio" xlink:to="nwpx_MaximumSeniorLeverageRatio-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AmortizationOfIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_AmortizationOfIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AmortizationOfIntangibleAssets" xlink:to="us-gaap_AmortizationOfIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityAddressCityOrTown-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityAddressPostalZipCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityAddressStateOrProvince-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskByTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskByTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Allowance for doubtful accounts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskTypeDomain" xlink:to="us-gaap_ConcentrationRiskTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityCommonStockSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCommonStockSharesOutstanding" xlink:to="dei_EntityCommonStockSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SalesRevenueNetMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SalesRevenueNetMember" xlink:to="us-gaap_SalesRevenueNetMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInInventories</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInInventories-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInInventories" xlink:to="us-gaap_IncreaseDecreaseInInventories-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:label xlink:label="dei_TradingSymbol-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost</link:label>
    <link:label xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Benefit Plan, Net Periodic Benefit Cost (Credit), Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
    <link:label xlink:label="dei_LocalPhoneNumber-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Remaining Borrowing Capacity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TableTextBlock</link:label>
    <link:label xlink:label="us-gaap_TableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes Tables</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_TableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Maximum Borrowing Capacity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</link:label>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock compensation plans (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock compensation plans</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures, Total (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Line of Credit Facility, Lender [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityLenderDomain" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventorySuppliesNetOfReserves" xlink:label="us-gaap_InventorySuppliesNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventorySuppliesNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Supplies</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventorySuppliesNetOfReserves" xlink:to="us-gaap_InventorySuppliesNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCreditFacilityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lender Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LiabilitiesAndStockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and stockholders&#8217; equity</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Work-in-process</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:label xlink:label="country_US-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="country_US" xlink:to="country_US-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:label="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of the change in restricted stock units (RSUs) and performance share awards (PSAs).</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:to="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncreaseDecreaseInContractWithCustomerAsset</link:label>
    <link:label xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Contract assets, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss</link:label>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtDisclosureTextBlock" xlink:to="us-gaap_DebtDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_InterestExpense</link:label>
    <link:label xlink:label="us-gaap_InterestExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Interest expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestExpense" xlink:to="us-gaap_InterestExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LowerWillametteGroupMember" xlink:label="nwpx_LowerWillametteGroupMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LowerWillametteGroupMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lower Willamette Group [Member]</link:label>
    <link:label xlink:label="nwpx_LowerWillametteGroupMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Refers to information regarding the Lower Willamette Group.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LowerWillametteGroupMember" xlink:to="nwpx_LowerWillametteGroupMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DisclosureTextBlockAbstract</link:label>
    <link:label xlink:label="us-gaap_DisclosureTextBlockAbstract-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Notes to Financial Statements</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureTextBlockAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNoncashIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherNoncashIncomeExpense</link:label>
    <link:label xlink:label="us-gaap_OtherNoncashIncomeExpense-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncashIncomeExpense" xlink:to="us-gaap_OtherNoncashIncomeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryDisclosureTextBlock" xlink:to="us-gaap_InventoryDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionGainLossRealized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ForeignCurrencyTransactionGainLossRealized</link:label>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionGainLossRealized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency Transaction Gain (Loss), Realized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossRealized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term lease liabilities, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Present value of lease liabilities, operating leases</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiability" xlink:to="us-gaap_OperatingLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current portion of operating lease liabilities</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Current portion of lease liabilities, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance lease liabilities</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityCurrent-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Current portion of lease liabilities, included in Accrued liabilities, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityCurrent" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term lease liabilities, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:to="us-gaap_FinanceLeaseLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating leases, Right-of-use assets</link:label>
    <link:label xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeasePrincipalPayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeasePrincipalPayments</link:label>
    <link:label xlink:label="us-gaap_FinanceLeasePrincipalPayments-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payments on finance lease liabilities</link:label>
    <link:label xlink:label="us-gaap_FinanceLeasePrincipalPayments-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Financing cash flows from finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeasePrincipalPayments" xlink:to="us-gaap_FinanceLeasePrincipalPayments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</link:label>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amount representing interest, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Present value of lease liabilities, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiability" xlink:to="us-gaap_FinanceLeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2023, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2024, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2025, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseRightOfUseAsset-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finance leases, net, included in Property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseRightOfUseAsset" xlink:to="us-gaap_FinanceLeaseRightOfUseAsset-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax</link:label>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Pension liability adjustment, net of income tax benefit of $679 and $671</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2024</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2021, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022, operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax</link:label>
    <link:label xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:to="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesDomain" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_ShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based compensation expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensation" xlink:to="us-gaap_ShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsNoncurrent" xlink:to="us-gaap_OtherAssetsNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationsPolicy" xlink:to="us-gaap_BusinessCombinationsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FiniteLivedIntangibleAssetUsefulLife</link:label>
    <link:label xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerSharePolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanMember" xlink:label="nwpx_DefinedContributionPlanMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DefinedContributionPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan [Member]</link:label>
    <link:label xlink:label="nwpx_DefinedContributionPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Defined Contribution Plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DefinedContributionPlanMember" xlink:to="nwpx_DefinedContributionPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-qualified Retirement Savings Plan [Member]</link:label>
    <link:label xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Information pertaining to the Non-qualified Retirement Savings Plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:to="nwpx_NonqualifiedRetirementSavingsPlanMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:to="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxPolicyTextBlock" xlink:to="us-gaap_IncomeTaxPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:label="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect</link:label>
    <link:label xlink:label="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Cuts and Jobs Act, Reclassification from AOCI to Retained Earnings, Tax Effect</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:to="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AssetsCurrent</link:label>
    <link:label xlink:label="us-gaap_AssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrent" xlink:to="us-gaap_AssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-based Payment Arrangement [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:label="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension and Other Postretirement Plans, Pensions, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:to="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Ameron Water Transmission Group, LLC [Member]</link:label>
    <link:label xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the entity Ameron Water Transmission Group, LLC.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, $.01 par value, 15,000,000 shares authorized, 9,805,437 and 9,746,979 shares issued and outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockValue" xlink:to="us-gaap_CommonStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by (used in) operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesAuthorized" xlink:to="us-gaap_CommonStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockSharesIssued" xlink:to="us-gaap_CommonStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CommonStockCapitalSharesReservedForFutureIssuance</link:label>
    <link:label xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock, Capital Shares Reserved for Future Issuance (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsValuationAllowance</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeMember" xlink:to="srt_RangeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasePayments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasePayments</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasePayments-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Operating cash flows from operating leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasePayments" xlink:to="us-gaap_OperatingLeasePayments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MaximumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MaximumMember" xlink:to="srt_MaximumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:label="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncash investing and financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:label xlink:label="srt_MinimumMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_MinimumMember" xlink:to="srt_MinimumMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsNet</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, net</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsNet" xlink:to="us-gaap_DeferredTaxAssetsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_RangeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RangeAxis" xlink:to="srt_RangeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseInterestPaymentOnLiability</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Operating cash flows from finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:to="us-gaap_FinanceLeaseInterestPaymentOnLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="us-gaap_OperatingLeasesRentExpenseNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLeasesRentExpenseNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLeasesRentExpenseNet</link:label>
    <link:label xlink:label="us-gaap_OperatingLeasesRentExpenseNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Leases, Rent Expense, Net, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLeasesRentExpenseNet" xlink:to="us-gaap_OperatingLeasesRentExpenseNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockValue" xlink:to="us-gaap_PreferredStockValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesIssued" xlink:to="us-gaap_PreferredStockSharesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InterestPaidNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash paid during the period for interest, net of amounts capitalized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InterestPaidNet" xlink:to="us-gaap_InterestPaidNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsOther-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsOther</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsOther-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOther" xlink:to="us-gaap_DeferredTaxAssetsOther-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_StatementGeographicalAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_StatementGeographicalAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_SegmentGeographicalDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_SegmentGeographicalDomain" xlink:to="srt_SegmentGeographicalDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsGross</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsGross-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, gross</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsGross" xlink:to="us-gaap_DeferredTaxAssetsGross-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockSharesAuthorized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, shares authorized (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockSharesAuthorized" xlink:to="us-gaap_PreferredStockSharesAuthorized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation and finance lease amortization</link:label>
    <link:label xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives and amount of amortization expense attributable to right-of-use asset from finance lease.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:to="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxLiabilities</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Total deferred tax liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilities" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label xlink:label="us-gaap_InventoryNet-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryNet" xlink:to="us-gaap_InventoryNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred stock, par value (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net sales</link:label>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Including Assessed Tax</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:label="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LesseeLiabilityMaturityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Liability, Maturity [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_LesseeLiabilityMaturityTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of undiscounted cash flows of lessee's operating and finace lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating and finance lease liability recognized in statement of financial position.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:to="nwpx_LesseeLiabilityMaturityTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueInputsLevel3Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel3Member" xlink:to="us-gaap_FairValueInputsLevel3Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsInventory-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsInventory</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsInventory-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsInventory" xlink:to="us-gaap_DeferredTaxAssetsInventory-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseLiability" xlink:label="nwpx_LeaseLiability" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_LeaseLiability</link:label>
    <link:label xlink:label="nwpx_LeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease liabilities</link:label>
    <link:label xlink:label="nwpx_LeaseLiability-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Present value of lessee's discounted obligation for lease payments from operating and finance lease.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LeaseLiability" xlink:to="nwpx_LeaseLiability-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueInputsLevel1Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel1Member" xlink:to="us-gaap_FairValueInputsLevel1Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueInputsLevel2Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueInputsLevel2Member" xlink:to="us-gaap_FairValueInputsLevel2Member-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:label="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Information Related to Operating and Finance Leases [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of other information related to operating and finance leases.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:to="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:label="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lease Terms and Discount Rates for Lease Liabilities [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tabular disclosure of lessee's lease terms and discount rates for lease liabilities.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:to="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total deferred income tax expense (benefit)</link:label>
    <link:label xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of deferred state, local, federal and foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:to="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIncomeTaxRefunds" xlink:label="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromIncomeTaxRefunds-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax refunds</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:to="us-gaap_ProceedsFromIncomeTaxRefunds-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FireMember" xlink:label="us-gaap_FireMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FireMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fire [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FireMember" xlink:to="us-gaap_FireMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncatastrophicEventDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncatastrophic Event [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncatastrophicEventDomain" xlink:to="us-gaap_NoncatastrophicEventDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReceivablesNetCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trade and other receivables, less allowance for doubtful accounts of $767 and $801</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesNetCurrent" xlink:to="us-gaap_ReceivablesNetCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PropertyPlantAndEquipmentUsefulLife</link:label>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cumulative Effect, Period of Adoption, Adjustment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConstructionInProgressMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Construction in Progress [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConstructionInProgressMember" xlink:to="us-gaap_ConstructionInProgressMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseDisclosureTextBlock" xlink:label="nwpx_LesseeLeaseDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_LesseeLeaseDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Lease, Disclosure [Text Block]</link:label>
    <link:label xlink:label="nwpx_LesseeLeaseDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The entire disclosure for leases of lessee.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_LesseeLeaseDisclosureTextBlock" xlink:to="nwpx_LesseeLeaseDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NoncatastrophicEventAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncatastrophic Event [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementLineItems-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StatementLineItems-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue</link:label>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Stock-based Payment Award, Grant Date Fair Value (in dollars per share)</link:label>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the stock-based payment award grant date fair value under a share-based compensation arrangement.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:to="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:to="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued employee benefits</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NumberOfOperatingSegments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NumberOfOperatingSegments</link:label>
    <link:label xlink:label="us-gaap_NumberOfOperatingSegments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Operating Segments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NumberOfOperatingSegments" xlink:to="us-gaap_NumberOfOperatingSegments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred compensation plan</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationPlanAssets-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Compensation Plan Assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationPlanAssets" xlink:to="us-gaap_DeferredCompensationPlanAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:to="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BuildingMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BuildingMember" xlink:to="us-gaap_BuildingMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional paid-in-capital</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stockholders&#8217; equity:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LandImprovementsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Land Improvements [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LandImprovementsMember" xlink:to="us-gaap_LandImprovementsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other income</link:label>
    <link:label xlink:label="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other income (loss)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNonoperatingIncomeExpense" xlink:to="us-gaap_OtherNonoperatingIncomeExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax credit carryforwards</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxAssetsOperatingLossCarryforwards</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net operating loss carryforwards</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AssetsCurrentAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrentAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FairValueDisclosuresTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FairValueDisclosuresTextBlock" xlink:to="us-gaap_FairValueDisclosuresTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents, beginning of period</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents, end of period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InventoryPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InventoryPolicyTextBlock" xlink:to="us-gaap_InventoryPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</link:label>
    <link:label xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Change in cash and cash equivalents</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeInterestAndDividend" xlink:label="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_InvestmentIncomeInterestAndDividend-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest income</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_InvestmentIncomeInterestAndDividend" xlink:to="us-gaap_InvestmentIncomeInterestAndDividend-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInFinancingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) financing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_Liabilities</link:label>
    <link:label xlink:label="us-gaap_Liabilities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_Liabilities" xlink:to="us-gaap_Liabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommitmentsAndContingencies-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 14)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommitmentsAndContingencies" xlink:to="us-gaap_CommitmentsAndContingencies-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:label xlink:label="srt_DirectorMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Director [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_DirectorMember" xlink:to="srt_DirectorMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingIncomeLoss</link:label>
    <link:label xlink:label="us-gaap_OperatingIncomeLoss-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating income (loss)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingIncomeLoss" xlink:to="us-gaap_OperatingIncomeLoss-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiabilityRevenueRecognized</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Revenue Recognized</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInOperatingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) operating activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</link:label>
    <link:label xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInInvestingActivities</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilities</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Net deferred income tax liabilities</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Net deferred income tax liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilities" xlink:to="us-gaap_DeferredTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent</link:label>
    <link:label xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Liability, Defined Benefit Plan, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:to="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_GrossProfit</link:label>
    <link:label xlink:label="us-gaap_GrossProfit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross profit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_GrossProfit" xlink:to="us-gaap_GrossProfit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfGoodsAndServicesSold-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of sales</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfGoodsAndServicesSold" xlink:to="us-gaap_CostOfGoodsAndServicesSold-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_CounterpartyNameAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_CounterpartyNameAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Counterparty Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201409Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2014-09 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201409Member" xlink:to="us-gaap_AccountingStandardsUpdate201409Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativesPolicyTextBlock" xlink:label="us-gaap_DerivativesPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativesPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivatives, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativesPolicyTextBlock" xlink:to="us-gaap_DerivativesPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredIncomeTaxLiabilitiesNet</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:label="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net cash provided by investing activities from discontinued operations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:to="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations</link:label>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in investing activities from continuing operations</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DerivativeLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DerivativeLiabilities</link:label>
    <link:label xlink:label="us-gaap_DerivativeLiabilities-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency forward contracts</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DerivativeLiabilities" xlink:to="us-gaap_DerivativeLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2016-02 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201602Member" xlink:to="us-gaap_AccountingStandardsUpdate201602Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfAdoptionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfAdoptionMember" xlink:to="us-gaap_TypeOfAdoptionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ConcentrationRiskCreditRisk-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Credit Risk, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ConcentrationRiskCreditRisk" xlink:to="us-gaap_ConcentrationRiskCreditRisk-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</link:label>
    <link:label xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Tax withholdings related to net share settlements of restricted stock and performance share awards</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Property and equipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredTaxLiabilitiesPrepaidExpenses</link:label>
    <link:label xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses-label" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:to="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LettersOfCreditOutstandingAmount</link:label>
    <link:label xlink:label="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Letters of Credit Outstanding, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LettersOfCreditOutstandingAmount" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent</link:label>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Workers' Compensation Liability</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:to="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisposalGroupClassificationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisposalGroupClassificationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Classification [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisposalGroupClassificationDomain" xlink:to="us-gaap_DisposalGroupClassificationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RetainedEarningsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RetainedEarningsMember" xlink:to="us-gaap_RetainedEarningsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:label xlink:label="srt_TitleOfIndividualAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of Individual [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentForeignTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AdditionalPaidInCapitalMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AdditionalPaidInCapitalMember" xlink:to="us-gaap_AdditionalPaidInCapitalMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentFederalTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CommonStockMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CommonStockMember" xlink:to="us-gaap_CommonStockMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementEquityComponentsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_StatementEquityComponentsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility" xlink:type="locator"/>
    <link:label xlink:label="nwpx_GainLossOnDispositionOfFacility-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_GainLossOnDispositionOfFacility</link:label>
    <link:label xlink:label="nwpx_GainLossOnDispositionOfFacility-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Gain on sale of facilities</link:label>
    <link:label xlink:label="nwpx_GainLossOnDispositionOfFacility-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of gain (loss) on sale or disposal of a facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_GainLossOnDispositionOfFacility" xlink:to="nwpx_GainLossOnDispositionOfFacility-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201802Member" xlink:label="us-gaap_AccountingStandardsUpdate201802Member" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingStandardsUpdate201802Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update 2018-02 [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingStandardsUpdate201802Member" xlink:to="us-gaap_AccountingStandardsUpdate201802Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EquityComponentDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EquityComponentDomain" xlink:to="us-gaap_EquityComponentDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LongTermDebt</link:label>
    <link:label xlink:label="us-gaap_LongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Debt, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebt" xlink:to="us-gaap_LongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_CurrentIncomeTaxExpenseBenefit</link:label>
    <link:label xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current income tax expense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncurrentAssetsMember" xlink:label="us-gaap_OtherNoncurrentAssetsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherNoncurrentAssetsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Noncurrent Assets [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherNoncurrentAssetsMember" xlink:to="us-gaap_OtherNoncurrentAssetsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EnvironmentalRemediationSiteDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Environmental Remediation Site [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EnvironmentalRemediationSiteDomain" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligationPercentage</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Percentage</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RevenueRemainingPerformanceObligation</link:label>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligation" xlink:to="us-gaap_RevenueRemainingPerformanceObligation-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsMember" xlink:label="us-gaap_OtherAssetsMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherAssetsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherAssetsMember" xlink:to="us-gaap_OtherAssetsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteAxis" xlink:label="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EnvironmentalRemediationSiteAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Environmental Remediation Site [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">United States</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification out of Accumulated Other Comprehensive Income [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification out of Accumulated Other Comprehensive Income [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification out of Accumulated Other Comprehensive Income [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:label="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ComprehensiveIncomeNoteTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income (Loss) Note [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:to="us-gaap_ComprehensiveIncomeNoteTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LineOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LineOfCredit</link:label>
    <link:label xlink:label="us-gaap_LineOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term Line of Credit, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LineOfCredit" xlink:to="us-gaap_LineOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:to="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Reclassification out of Accumulated Other Comprehensive Income [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsOfDebtIssuanceCosts</link:label>
    <link:label xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payments of debt issuance costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsOfDebtIssuanceCosts" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StateAndLocalJurisdictionMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State and Local Jurisdiction [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StateAndLocalJurisdictionMember" xlink:to="us-gaap_StateAndLocalJurisdictionMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Timing of Transfer of Good or Service [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredFinanceCostsNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredFinanceCostsNet</link:label>
    <link:label xlink:label="us-gaap_DeferredFinanceCostsNet-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: Unamortized debt issuance costs</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredFinanceCostsNet" xlink:to="us-gaap_DeferredFinanceCostsNet-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredAtPointInTimeMember" xlink:label="us-gaap_TransferredAtPointInTimeMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TransferredAtPointInTimeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Transferred at Point in Time [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransferredAtPointInTimeMember" xlink:to="us-gaap_TransferredAtPointInTimeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredOverTimeMember" xlink:label="us-gaap_TransferredOverTimeMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TransferredOverTimeMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Transferred over Time [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TransferredOverTimeMember" xlink:to="us-gaap_TransferredOverTimeMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxAuthorityDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxAuthorityDomain" xlink:to="us-gaap_IncomeTaxAuthorityDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DomesticCountryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DomesticCountryMember" xlink:to="us-gaap_DomesticCountryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignCountryMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignCountryMember" xlink:to="us-gaap_ForeignCountryMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Timing of Transfer of Good or Service [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLongTermDebt</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payments on long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLongTermDebt" xlink:to="us-gaap_RepaymentsOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentAnnualReport-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentAnnualReport" xlink:to="dei_DocumentAnnualReport-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_MachineryAndEquipmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Machinery and Equipment [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_MachineryAndEquipmentMember" xlink:to="us-gaap_MachineryAndEquipmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:label="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule Of Inventory Current And Non Current [Table Text Block]</link:label>
    <link:label xlink:label="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">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. Includes current and non-current inventory balances.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:to="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BalanceSheetLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BalanceSheetLocationDomain" xlink:to="us-gaap_BalanceSheetLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="us-gaap_ReceivablesPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ReceivablesPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Receivable [Policy Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ReceivablesPolicyTextBlock" xlink:to="us-gaap_ReceivablesPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityIncorporationStateCountryCode-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentCarryingAmount" xlink:label="us-gaap_DebtInstrumentCarryingAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DebtInstrumentCarryingAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DebtInstrumentCarryingAmount</link:label>
    <link:label xlink:label="us-gaap_DebtInstrumentCarryingAmount-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total future principal payments</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DebtInstrumentCarryingAmount" xlink:to="us-gaap_DebtInstrumentCarryingAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefits</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Unrecognized income tax benefits, beginning of year</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefits-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Unrecognized income tax benefits, end of year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefits" xlink:to="us-gaap_UnrecognizedTaxBenefits-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AccountingPoliciesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" xlink:type="locator"/>
    <link:label xlink:label="dei_DocumentTransitionReport-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentTransitionReport" xlink:to="dei_DocumentTransitionReport-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedCostOfEPASelectedRemedy" xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_EstimatedCostOfEPASelectedRemedy</link:label>
    <link:label xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated Cost of EPA Selected Remedy</link:label>
    <link:label xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The estimated cost of the remedy selected by EPA.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EstimatedCostOfEPASelectedRemedy" xlink:to="nwpx_EstimatedCostOfEPASelectedRemedy-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_EstimatedTimeToCompleteSelectedEPARemedy</link:label>
    <link:label xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated Time to Complete Selected EPA Remedy (Year)</link:label>
    <link:label xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The estimated amount of time to complete the selected EPA remedy.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:to="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expenses [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:label xlink:label="dei_EntityInteractiveDataCurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityInteractiveDataCurrent" xlink:to="dei_EntityInteractiveDataCurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfPotentiallyResponsibleParties" xlink:label="nwpx_NumberOfPotentiallyResponsibleParties" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NumberOfPotentiallyResponsibleParties-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_NumberOfPotentiallyResponsibleParties</link:label>
    <link:label xlink:label="nwpx_NumberOfPotentiallyResponsibleParties-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number Of Potentially Responsible Parties</link:label>
    <link:label xlink:label="nwpx_NumberOfPotentiallyResponsibleParties-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of potentially responsible parties for Portland Harbor Superfund site.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NumberOfPotentiallyResponsibleParties" xlink:to="nwpx_NumberOfPotentiallyResponsibleParties-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Portland Harbor Natural Resources Trustee Council [Member]</link:label>
    <link:label xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The name or description of the loss contingency by its nature.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:to="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Instrument, Prepayment from Excess Cash Flow Generated, Amount Payable in Next 12 Months</link:label>
    <link:label xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount required during the next 12 months for prepayment from excess cash flow generated during the current fiscal year.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:to="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfActiveStockIncentivePlans" xlink:label="nwpx_NumberOfActiveStockIncentivePlans" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NumberOfActiveStockIncentivePlans-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_NumberOfActiveStockIncentivePlans</link:label>
    <link:label xlink:label="nwpx_NumberOfActiveStockIncentivePlans-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number Of Active Stock Incentive Plans</link:label>
    <link:label xlink:label="nwpx_NumberOfActiveStockIncentivePlans-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of active stock incentive plans.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NumberOfActiveStockIncentivePlans" xlink:to="nwpx_NumberOfActiveStockIncentivePlans-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:type="locator"/>
    <link:label xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized</link:label>
    <link:label xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest Expense, Debt and Finance Leases, Net of Amounts Capitalized</link:label>
    <link:label xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of interest expense recorded during the period from debt and finance leases, net of amounts capitalized.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:to="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
    <link:label xlink:label="dei_SecurityExchangeName-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance</link:label>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares)</link:label>
    <link:label xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The number of non-vested equity-based payment instruments at a target level of performance, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:to="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PerformanceAwardsIssuedMultiplier" xlink:label="nwpx_PerformanceAwardsIssuedMultiplier" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PerformanceAwardsIssuedMultiplier-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_PerformanceAwardsIssuedMultiplier</link:label>
    <link:label xlink:label="nwpx_PerformanceAwardsIssuedMultiplier-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance Awards Issued Multiplier</link:label>
    <link:label xlink:label="nwpx_PerformanceAwardsIssuedMultiplier-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The percentage of the performance awards issued multiplier.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PerformanceAwardsIssuedMultiplier" xlink:to="nwpx_PerformanceAwardsIssuedMultiplier-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increases for positions taken in the current year</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions-label" xlink:type="arc"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:label xlink:label="dei_Security12bTitle-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units and Performance Stock Awards [Member]</link:label>
    <link:label xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The type or description of the award.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued</link:label>
    <link:label xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties Accrued</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Borrowings on long-term debt</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_CostOfSalesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Sales [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_CostOfSalesMember" xlink:to="us-gaap_CostOfSalesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:type="locator"/>
    <link:label xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed</link:label>
    <link:label xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock, Capital Shares Reserved for Future Issuance, Percentage Vesting of Outstanding PSAs Assumed</link:label>
    <link:label xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the vesting percentage of PSAs used as an assumption to determine the number of capital shares reserved for future issuance.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:to="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ValuationAllowancesAndReservesBalance</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance at Beginning of Period</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance at End of Period</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesBalance" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Charged to Profit and Loss</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ValuationAllowancesAndReservesDeductions</link:label>
    <link:label xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deduction from Reserves</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ValuationAllowancesAndReservesDeductions" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementLocationDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementLocationDomain" xlink:to="us-gaap_IncomeStatementLocationDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_WorkersCompensationLiabilityNoncurrent</link:label>
    <link:label xlink:label="us-gaap_WorkersCompensationLiabilityNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Workers' Compensation Liability, Noncurrent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:to="us-gaap_WorkersCompensationLiabilityNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUntilDecember2018Member" xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Placed in Escrow Until December 2018 [Member]</link:label>
    <link:label xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the amount placed in escrow until December 2018.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:to="nwpx_PlacedInEscrowUntilDecember2018Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effect of potentially dilutive common shares (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:to="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Placed in Escrow Unitil February 2018 [Member]</link:label>
    <link:label xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the amount placed in escrow until February 2018.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:to="nwpx_PlacedInEscrowUnitilFebruary2018Member-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_TaxCreditCarryforwardAmount</link:label>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Amount</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardAmount" xlink:to="us-gaap_TaxCreditCarryforwardAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery</link:label>
    <link:label xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Interruption, Incremental Production Costs, Net of Insurance Recovery</link:label>
    <link:label xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of incremental production costs due to business interruptions, net of business interruption insurance recovery.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:to="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finance Lease, Right-of-Use Asset, Accumulated Amortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</link:label>
    <link:label xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_RepaymentsOfLinesOfCredit</link:label>
    <link:label xlink:label="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Repayments on line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RepaymentsOfLinesOfCredit" xlink:to="us-gaap_RepaymentsOfLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Diluted weighted-average common shares outstanding (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_OtherLongtermLiabilitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Long-term Liabilities [Member]</link:label>
    <link:label xlink:label="nwpx_OtherLongtermLiabilitiesMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents other long-term liabilities.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_OtherLongtermLiabilitiesMember" xlink:to="nwpx_OtherLongtermLiabilitiesMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TaxCreditCarryforwardNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OperatingLossCarryforwards</link:label>
    <link:label xlink:label="us-gaap_OperatingLossCarryforwards-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforwards, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OperatingLossCarryforwards" xlink:to="us-gaap_OperatingLossCarryforwards-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ProceedsFromLinesOfCredit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Borrowings on line of credit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ProceedsFromLinesOfCredit" xlink:to="us-gaap_ProceedsFromLinesOfCredit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementTable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementTable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementOfFinancialPositionAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ProceedsFromSaleOfFacility" xlink:label="nwpx_ProceedsFromSaleOfFacility" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ProceedsFromSaleOfFacility-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from sale of facilities</link:label>
    <link:label xlink:label="nwpx_ProceedsFromSaleOfFacility-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The cash inflow from the sale of a facility used in the normal conduct of business to produce goods and services and not intended for resale.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ProceedsFromSaleOfFacility" xlink:to="nwpx_ProceedsFromSaleOfFacility-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_EarningsPerShareDiluted-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareDiluted" xlink:to="us-gaap_EarningsPerShareDiluted-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective income tax rate</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables</link:label>
    <link:label xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Customers with Receivable Balance in Excess of Ten Percent of Receivables</link:label>
    <link:label xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of customers with balances in excess of 10% of total accounts receivable.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:to="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:label xlink:label="us-gaap_EarningsPerShareBasic-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic (in dollars per share)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EarningsPerShareBasic" xlink:to="us-gaap_EarningsPerShareBasic-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfCashFlowsAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementOfCashFlowsAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementOfStockholdersEquityAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:label="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration</link:label>
    <link:label xlink:label="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposal Group, Including Discontinued Operation, Consideration</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:to="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</link:label>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive loss, net of tax</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_IncomeStatementAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2023</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AccruedLiabilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liability [Member]</link:label>
    <link:label xlink:label="nwpx_AccruedLiabilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Carrying value of liabilities incurred and payable as of the balance sheet date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AccruedLiabilityMember" xlink:to="nwpx_AccruedLiabilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:label="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from External Customers by Geographic Areas [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:to="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Group Name [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2021</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">2022</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseInterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Interest on lease liabilities</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseInterestExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseInterestExpense</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseInterestExpense" xlink:to="us-gaap_FinanceLeaseInterestExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseLiabilityPaymentsDue</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total lease payments, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDue-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:label="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Consideration Transferred</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:to="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Amortization of right-of-use assets</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseRightOfUseAssetAmortization</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAmortization-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:label="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_WorkersCompensationInsurancePolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Workers Compensation Insurance [Policy Text Block]</link:label>
    <link:label xlink:label="nwpx_WorkersCompensationInsurancePolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for workers compensation insurance and calculation of liability balance.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:to="nwpx_WorkersCompensationInsurancePolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2025, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Thereafter, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:label="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AccruedLiabilitiesPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities [Policy Text Block]</link:label>
    <link:label xlink:label="nwpx_AccruedLiabilitiesPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents information about accrued liabilities Policy.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:to="nwpx_AccruedLiabilitiesPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amount representing interest, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:to="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2021, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2022, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2023, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">2024, finance leases</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_TypeOfRestructuringDomain-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_TypeOfRestructuringDomain" xlink:to="us-gaap_TypeOfRestructuringDomain-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Finance leases, weighted-average discount rate</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:to="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EmployeeSeveranceMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Severance [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EmployeeSeveranceMember" xlink:to="us-gaap_EmployeeSeveranceMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring and Related Activities Disclosure [Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_RestructuringCostAndReserveAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_RestructuringCostAndReserveAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Finance leases, weighted-average remaining lease term (Year)</link:label>
    <link:label xlink:label="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OutOfPeriodAdjustmentMember" xlink:label="nwpx_OutOfPeriodAdjustmentMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_OutOfPeriodAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Out of Period Adjustment [Member]</link:label>
    <link:label xlink:label="nwpx_OutOfPeriodAdjustmentMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents out of period adjustments.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_OutOfPeriodAdjustmentMember" xlink:to="nwpx_OutOfPeriodAdjustmentMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_IncomeTaxReconciliationOtherAdjustments</link:label>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Bargain purchase gain</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Bargain purchase gain</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</link:label>
    <link:label xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherLiabilitiesNoncurrent" xlink:to="us-gaap_OtherLiabilitiesNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Contract assets</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">The amount of contract assets recognized as of the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfMajorCustomers" xlink:label="nwpx_NumberOfMajorCustomers" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_NumberOfMajorCustomers</link:label>
    <link:label xlink:label="nwpx_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Major Customers</link:label>
    <link:label xlink:label="nwpx_NumberOfMajorCustomers-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NumberOfMajorCustomers" xlink:to="nwpx_NumberOfMajorCustomers-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in valuation allowance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension liability adjustment, tax effect</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax expense (benefit) included in accumulated other comprehensive income for defined benefit pension and other postretirement plans.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss) on cash flow hedges, net of tax expense/benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:to="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyInHoustonTexasMember" xlink:label="nwpx_PropertyInHoustonTexasMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_PropertyInHoustonTexasMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property in Houston, Texas [Member]</link:label>
    <link:label xlink:label="nwpx_PropertyInHoustonTexasMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to property in Houston, Texas.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_PropertyInHoustonTexasMember" xlink:to="nwpx_PropertyInHoustonTexasMember-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Contract liabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of contract liabilities, assumed at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss) on cash flow hedges, tax effect</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax expense (benefit) included in accumulated other comprehensive income for cash flow hedges.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accrued liabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of accrued liabilities, assumed at the acquisition date.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_WellsFargoBankNAMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Wells Fargo Bank, N.A. [Member]</link:label>
    <link:label xlink:label="nwpx_WellsFargoBankNAMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Related to the lender Wells Fargo Bank, N.A.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_WellsFargoBankNAMember" xlink:to="nwpx_WellsFargoBankNAMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:label="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss) on cash flow hedges, tax expense/benefit</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:to="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:label xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent</link:label>
    <link:label xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Contribution Percentage for Which Company Will Match at Fifty Percent</link:label>
    <link:label xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Employee contribution for which company will match at 50% under defined contribution retirement plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:to="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:label="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:label xlink:label="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract Assets and Liabilities, Policy [Policy Text Block]</link:label>
    <link:label xlink:label="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Disclosure of accounting policy for contract assets and liabilities.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:to="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:type="locator"/>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Matching Percentage on First Six Percent of Employee Contributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company matching percentage on first 6% of employee contributions under defined contribution retirement plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:to="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DefinedContributionPlanNumberOfInvestmentOptions</link:label>
    <link:label xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan Number of Investment Options</link:label>
    <link:label xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan Number Of Investment Options</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:to="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:type="locator"/>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Unrecognized Net Actuarial Losses, Net of Tax</link:label>
    <link:label xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents the amount of unrecognized actuarial loss recognized in accumulated other comprehensive income (loss), net of tax.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent</link:label>
    <link:label xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Compensation Liability, Classified, Noncurrent, Total</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:type="locator"/>
    <link:label xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_NumberOfNoncontributoryDefinedBenefitPlans</link:label>
    <link:label xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of Non-contributory Defined Benefit Plans</link:label>
    <link:label xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of noncontributory defined benefit plans.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:to="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:type="locator"/>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Matching Percentage on First Ten Thousand Dollar Employee Contributions</link:label>
    <link:label xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents Company matching percentage on first $10,000 of employee contributions under non-qualified retirement savings plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:to="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:type="locator"/>
    <link:label xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits</link:label>
    <link:label xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Federal and state income tax credits</link:label>
    <link:label xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to Federal and State tax credits.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:to="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:label xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent</link:label>
    <link:label xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Select Employee Contribution for Which Company Will Match at Fifty Percent</link:label>
    <link:label xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents select employee contributions for which Company will match at 50% under non-qualified retirement savings plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:to="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:type="locator"/>
    <link:label xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent</link:label>
    <link:label xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Officer Contribution for Which Company Will Match at Fifty Percent</link:label>
    <link:label xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents Officer contributions for which Company will match at 50% under non-qualified retirement savings plan.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:to="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignExchangeForwardMember" xlink:label="us-gaap_ForeignExchangeForwardMember" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ForeignExchangeForwardMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Exchange Forward [Member]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ForeignExchangeForwardMember" xlink:to="us-gaap_ForeignExchangeForwardMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_StockholdersEquity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stockholders' Equity Attributable to Parent, Ending Balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total stockholders&#8217; equity</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label xlink:label="us-gaap_StockholdersEquity-label" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StockholdersEquity" xlink:to="us-gaap_StockholdersEquity-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities assumed</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Other long-term liabilities</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</link:label>
    <link:label xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Acquisition of business, net of cash acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxAssetTradeReceivableNet" xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:type="locator"/>
    <link:label xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_DeferredTaxAssetTradeReceivableNet</link:label>
    <link:label xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trade receivable, net</link:label>
    <link:label xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Amount before allocation of valuation allowances of deferred tax asset attributable to trade receivables, net.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_DeferredTaxAssetTradeReceivableNet" xlink:to="nwpx_DeferredTaxAssetTradeReceivableNet-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RetirementPlanExpense" xlink:label="nwpx_RetirementPlanExpense" xlink:type="locator"/>
    <link:label xlink:label="nwpx_RetirementPlanExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_RetirementPlanExpense</link:label>
    <link:label xlink:label="nwpx_RetirementPlanExpense-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retirement Plan Expense</link:label>
    <link:label xlink:label="nwpx_RetirementPlanExpense-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents retirement plan expense.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_RetirementPlanExpense" xlink:to="nwpx_RetirementPlanExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:label="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued</link:label>
    <link:label xlink:label="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Goods and Nonemployee Services Transaction, Quantity of Securities Issued (in shares)</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:to="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nondeductible expenses</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementClassOfStockAxis" xlink:label="us-gaap_StatementClassOfStockAxis" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_StatementClassOfStockAxis-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Axis]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_StatementClassOfStockAxis" xlink:to="us-gaap_StatementClassOfStockAxis-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:type="locator"/>
    <link:label xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combination, Bargain Purchase, Increase (Decrease) in Gain Recognized, Measurement Period Adjustment</link:label>
    <link:label xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined) due to measurement period adjustment, this element represents the increase (decrease) amount of gain recognized by the entity.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:to="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_LongTermDebtNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-term debt</link:label>
    <link:label xlink:label="us-gaap_LongTermDebtNoncurrent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term debt, net of current portion</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_LongTermDebtNoncurrent" xlink:to="us-gaap_LongTermDebtNoncurrent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets-label" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets acquired</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets-label" xlink:type="arc"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MonterreyMexicoFacilityMember" xlink:label="nwpx_MonterreyMexicoFacilityMember" xlink:type="locator"/>
    <link:label xlink:label="nwpx_MonterreyMexicoFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Monterrey, Mexico Facility [Member]</link:label>
    <link:label xlink:label="nwpx_MonterreyMexicoFacilityMember-label" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Represents Monterrey, Mexico facility.</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="nwpx_MonterreyMexicoFacilityMember" xlink:to="nwpx_MonterreyMexicoFacilityMember-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent</link:label>
    <link:label xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent-label" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrealized gain (loss) on cash flow hedges</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:to="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State expense (benefit), net of federal income tax effect</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign rate differential</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Property and equipment</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-label" xlink:type="arc"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="locator"/>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-label" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-label" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</link:label>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-label" xlink:type="arc"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>12
<FILENAME>nwpx-20201231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII" standalone="no"?>
<!--Generated by ThunderDome XBRL - 06:58PM UTC 2021-03-04--><link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" 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.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:label="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:label="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_ComprehensiveIncomeNoteTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueDisclosuresTextBlock" xlink:label="us-gaap_FairValueDisclosuresTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:label="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryDisclosureTextBlock" xlink:label="us-gaap_InventoryDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_InventoryDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-document-and-entity-information" xlink:href="nwpx-20201231.xsd#statement-document-and-entity-information" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-document-and-entity-information" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_CurrentFiscalYearEndDate" xlink:label="dei_CurrentFiscalYearEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentAnnualReport" xlink:label="dei_DocumentAnnualReport" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalPeriodFocus" xlink:label="dei_DocumentFiscalPeriodFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentFiscalYearFocus" xlink:label="dei_DocumentFiscalYearFocus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationLineItems" xlink:label="dei_DocumentInformationLineItems" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentInformationTable" xlink:label="dei_DocumentInformationTable" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentTransitionReport" xlink:label="dei_DocumentTransitionReport" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_DocumentType" xlink:label="dei_DocumentType" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCommonStockSharesOutstanding" xlink:label="dei_EntityCommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityCurrentReportingStatus" xlink:label="dei_EntityCurrentReportingStatus" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityFilerCategory" xlink:label="dei_EntityFilerCategory" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityInteractiveDataCurrent" xlink:label="dei_EntityInteractiveDataCurrent" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityPublicFloat" xlink:label="dei_EntityPublicFloat" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityShellCompany" xlink:label="dei_EntityShellCompany" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntitySmallBusiness" xlink:label="dei_EntitySmallBusiness" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityVoluntaryFilers" xlink:label="dei_EntityVoluntaryFilers" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityWellKnownSeasonedIssuer" xlink:label="dei_EntityWellKnownSeasonedIssuer" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationTable" xlink:to="dei_DocumentInformationLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCentralIndexKey" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityRegistrantName" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_AmendmentFlag" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CurrentFiscalYearEndDate" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalPeriodFocus" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentFiscalYearFocus" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentType" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentAnnualReport" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentPeriodEndDate" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_DocumentTransitionReport" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFileNumber" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityIncorporationStateCountryCode" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityTaxIdentificationNumber" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressAddressLine1" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressCityOrTown" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressStateOrProvince" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityAddressPostalZipCode" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_CityAreaCode" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_LocalPhoneNumber" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_Security12bTitle" xlink:type="arc"/>
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_TradingSymbol" xlink:type="arc"/>
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_SecurityExchangeName" xlink:type="arc"/>
    <link:presentationArc order="22" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityWellKnownSeasonedIssuer" xlink:type="arc"/>
    <link:presentationArc order="23" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityVoluntaryFilers" xlink:type="arc"/>
    <link:presentationArc order="24" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCurrentReportingStatus" xlink:type="arc"/>
    <link:presentationArc order="25" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityInteractiveDataCurrent" xlink:type="arc"/>
    <link:presentationArc order="26" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityFilerCategory" xlink:type="arc"/>
    <link:presentationArc order="27" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntitySmallBusiness" xlink:type="arc"/>
    <link:presentationArc order="28" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityEmergingGrowthCompany" xlink:type="arc"/>
    <link:presentationArc order="29" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityShellCompany" xlink:type="arc"/>
    <link:presentationArc order="30" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityPublicFloat" xlink:type="arc"/>
    <link:presentationArc order="31" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_DocumentInformationLineItems" xlink:to="dei_EntityCommonStockSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-balance-sheets-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:label="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockParOrStatedValuePerShare" xlink:label="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesAuthorized" xlink:label="us-gaap_CommonStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesIssued" xlink:label="us-gaap_CommonStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockSharesOutstanding" xlink:label="us-gaap_CommonStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockParOrStatedValuePerShare" xlink:label="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesAuthorized" xlink:label="us-gaap_PreferredStockSharesAuthorized" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesIssued" xlink:label="us-gaap_PreferredStockSharesIssued" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockSharesOutstanding" xlink:label="us-gaap_PreferredStockSharesOutstanding" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PreferredStockSharesOutstanding" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesAuthorized" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesIssued" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockSharesOutstanding" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization" xlink:href="nwpx-20201231.xsd#statement-note-1-organization" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-1-organization" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:label="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OutOfPeriodAdjustmentMember" xlink:label="nwpx_OutOfPeriodAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SignificantAccountingPoliciesTextBlock" xlink:label="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="nwpx_OutOfPeriodAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationDisclosureTextBlock" xlink:label="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations" xlink:href="nwpx-20201231.xsd#statement-note-4-discontinued-operations" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AtchisonFacilityMember" xlink:label="nwpx_AtchisonFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUntilDecember2018Member" xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="nwpx_AtchisonFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DisposalGroupClassificationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_MX" xlink:label="country_MX" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MonterreyMexicoFacilityMember" xlink:label="nwpx_MonterreyMexicoFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyInHoustonTexasMember" xlink:label="nwpx_PropertyInHoustonTexasMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_MX" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="nwpx_MonterreyMexicoFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="nwpx_PropertyInHoustonTexasMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtDisclosureTextBlock" xlink:label="us-gaap_DebtDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DebtDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases" xlink:href="nwpx-20201231.xsd#statement-note-9-leases" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseDisclosureTextBlock" xlink:label="nwpx_LesseeLeaseDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="nwpx_LesseeLeaseDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities" xlink:href="nwpx-20201231.xsd#statement-note-11-derivative-instruments-and-hedging-activities" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:label="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignExchangeForwardMember" xlink:label="us-gaap_ForeignExchangeForwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_ForeignExchangeForwardMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans" xlink:href="nwpx-20201231.xsd#statement-note-12-retirement-plans" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanMember" xlink:label="nwpx_DefinedContributionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncurrentAssetsMember" xlink:label="us-gaap_OtherNoncurrentAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:label="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RetirementPlanTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="nwpx_DefinedContributionPlanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherNoncurrentAssetsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:label="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies" xlink:href="nwpx-20201231.xsd#statement-note-14-commitments-and-contingencies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LowerWillametteGroupMember" xlink:label="nwpx_LowerWillametteGroupMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborSuperfundSiteMember" xlink:label="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:label="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteAxis" xlink:label="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FireMember" xlink:label="us-gaap_FireMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CounterpartyNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="nwpx_LowerWillametteGroupMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_NoncatastrophicEventAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_FireMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:label="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalLossCarryforwardMember" xlink:label="us-gaap_CapitalLossCarryforwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxDisclosureTextBlock" xlink:label="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_CapitalLossCarryforwardMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-" xlink:href="nwpx-20201231.xsd#statement-note-18-restructuring-" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DemobilizationActivitiesMember" xlink:label="nwpx_DemobilizationActivitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NotesToFinancialStatementsAbstract" xlink:label="nwpx_NotesToFinancialStatementsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisclosureTextBlockAbstract" xlink:label="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:label="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NotesToFinancialStatementsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisclosureTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="nwpx_DemobilizationActivitiesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisclosureTextBlockAbstract" xlink:to="us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies" xlink:href="nwpx-20201231.xsd#statement-significant-accounting-policies-policies" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:label="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:label="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:label="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-significant-accounting-policies-policies" xlink:label="nwpx_statement-statement-significant-accounting-policies-policies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingPoliciesAbstract" xlink:label="us-gaap_AccountingPoliciesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationsPolicy" xlink:label="us-gaap_BusinessCombinationsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:label="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:label="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskCreditRisk" xlink:label="us-gaap_ConcentrationRiskCreditRisk" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConsolidationPolicyTextBlock" xlink:label="us-gaap_ConsolidationPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativesPolicyTextBlock" xlink:label="us-gaap_DerivativesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerSharePolicyTextBlock" xlink:label="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:label="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:label="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxPolicyTextBlock" xlink:label="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryPolicyTextBlock" xlink:label="us-gaap_InventoryPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:label="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:label="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PolicyTextBlockAbstract" xlink:label="us-gaap_PolicyTextBlockAbstract-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:label="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesPolicyTextBlock" xlink:label="us-gaap_ReceivablesPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRecognitionPolicyTextBlock" xlink:label="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:label="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UseOfEstimates" xlink:label="us-gaap_UseOfEstimates" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-significant-accounting-policies-policies" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PolicyTextBlockAbstract-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PolicyTextBlockAbstract" xlink:to="us-gaap_AccountingPoliciesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PriorPeriodReclassificationAdjustmentDescription" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_UseOfEstimates" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_BusinessCombinationsPolicy" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ReceivablesPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_InventoryPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_WorkersCompensationInsurancePolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="nwpx_AccruedLiabilitiesPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_DerivativesPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc"/>
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_ConcentrationRiskCreditRisk" xlink:type="arc"/>
    <link:presentationArc order="22" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AccountingPoliciesAbstract" xlink:to="us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:label="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-tables" xlink:label="nwpx_statement-statement-note-3-business-combinations-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:label="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:label="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:label="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-3-business-combinations-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_BusinessAcquisitionProFormaInformationTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:label="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-5-inventories-tables" xlink:label="nwpx_statement-statement-note-5-inventories-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-5-inventories-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:label="nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:label="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-6-property-and-equipment-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:label="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfGoodwillTextBlock" xlink:label="us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:label="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:label="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:label="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:label="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:label="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:label="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-tables" xlink:label="nwpx_statement-statement-note-9-leases-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCostTableTextBlock" xlink:label="us-gaap_LeaseCostTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_LeaseCostTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LesseeLiabilityMaturityTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:label="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-10-fair-value-measurements-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:label="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:label="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-13-sharebased-compensation-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-tables" xlink:label="nwpx_statement-statement-note-15-revenue-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:label="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:label="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-15-revenue-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-tables" xlink:label="nwpx_statement-statement-note-16-income-taxes-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:label="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:label="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:label="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:label="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:label="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:label="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:label="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TableTextBlock" xlink:label="us-gaap_TableTextBlock-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TableTextBlock-2" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TableTextBlock" xlink:to="nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-1-organization-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables" xlink:label="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OutOfPeriodAdjustmentMember" xlink:label="nwpx_OutOfPeriodAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:label="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:label="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:label="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:label="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyTransactionGainLossRealized" xlink:label="us-gaap_ForeignCurrencyTransactionGainLossRealized-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:label="us-gaap_PropertyPlantAndEquipmentUsefulLife-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityNoncurrent" xlink:label="us-gaap_WorkersCompensationLiabilityNoncurrent-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="us-gaap_AdjustmentsForErrorCorrectionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis" xlink:to="nwpx_OutOfPeriodAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-n2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentUsefulLife-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetUsefulLife-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyTransactionGainLossRealized-n2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-n2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment" xlink:label="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-n2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables" xlink:label="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-n2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired" xlink:label="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationAcquisitionRelatedCosts" xlink:label="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual" xlink:label="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred" xlink:label="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NumberOfOperatingSegments" xlink:label="us-gaap_NumberOfOperatingSegments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NumberOfOperatingSegments-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables-n2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationAcquisitionRelatedCosts-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment-n2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment-n2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-4-discontinued-operations-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AtchisonFacilityMember" xlink:label="nwpx_AtchisonFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:label="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PlacedInEscrowUntilDecember2018Member" xlink:label="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationAxis" xlink:label="us-gaap_DisposalGroupClassificationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupClassificationDomain" xlink:label="us-gaap_DisposalGroupClassificationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration" xlink:label="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:label="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EscrowDepositsRelatedToPropertySales" xlink:label="us-gaap_EscrowDepositsRelatedToPropertySales-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:label="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="us-gaap_DisposalGroupClassificationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis" xlink:to="nwpx_AtchisonFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DisposalGroupClassificationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="nwpx_PlacedInEscrowUnitilFebruary2018Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DisposalGroupClassificationAxis" xlink:to="nwpx_PlacedInEscrowUntilDecember2018Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EscrowDepositsRelatedToPropertySales-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_MX" xlink:label="country_MX" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MonterreyMexicoFacilityMember" xlink:label="nwpx_MonterreyMexicoFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyInHoustonTexasMember" xlink:label="nwpx_PropertyInHoustonTexasMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:label="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_MX" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="nwpx_MonterreyMexicoFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="nwpx_PropertyInHoustonTexasMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GainLossOnSaleOfPropertyPlantEquipment-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty" xlink:label="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow" xlink:label="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months" xlink:label="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized" xlink:label="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MaximumSeniorLeverageRatio" xlink:label="nwpx_MaximumSeniorLeverageRatio-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_MinimumFixedChargeCoverageRatio" xlink:label="nwpx_MinimumFixedChargeCoverageRatio-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityAxis" xlink:label="us-gaap_CreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CreditFacilityDomain" xlink:label="us-gaap_CreditFacilityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentBasisSpreadOnVariableRate1" xlink:label="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentFaceAmount" xlink:label="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentPeriodicPayment" xlink:label="us-gaap_DebtInstrumentPeriodicPayment-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtWeightedAverageInterestRate" xlink:label="us-gaap_DebtWeightedAverageInterestRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestCostsCapitalized" xlink:label="us-gaap_InterestCostsCapitalized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCredit" xlink:label="us-gaap_LineOfCredit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity" xlink:label="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage" xlink:label="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:label="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebt" xlink:label="us-gaap_LongTermDebt-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevolvingCreditFacilityMember" xlink:label="us-gaap_RevolvingCreditFacilityMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateAxis" xlink:label="us-gaap_VariableRateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableRateDomain" xlink:label="us-gaap_VariableRateDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_CreditFacilityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_VariableRateDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_CreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CreditFacilityAxis" xlink:to="us-gaap_RevolvingCreditFacilityMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_VariableRateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_VariableRateAxis" xlink:to="us-gaap_LondonInterbankOfferedRateLIBORMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_MaximumSeniorLeverageRatio-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_MinimumFixedChargeCoverageRatio-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestCostsCapitalized-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCredit-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentBasisSpreadOnVariableRate1-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtWeightedAverageInterestRate-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentFaceAmount-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentPeriodicPayment-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebt-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201602Member" xlink:label="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasesRentExpenseNet" xlink:label="us-gaap_OperatingLeasesRentExpenseNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201602Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasesRentExpenseNet-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeContractTypeDomain" xlink:label="us-gaap_DerivativeContractTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentRiskAxis" xlink:label="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet" xlink:label="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeNotionalAmount" xlink:label="us-gaap_DerivativeNotionalAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DesignatedAsHedgingInstrumentMember" xlink:label="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months" xlink:label="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignExchangeForwardMember" xlink:label="us-gaap_ForeignExchangeForwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationAxis" xlink:label="us-gaap_HedgingDesignationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_HedgingDesignationDomain" xlink:label="us-gaap_HedgingDesignationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NondesignatedMember" xlink:label="us-gaap_NondesignatedMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax" xlink:label="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_HedgingDesignationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_DerivativeContractTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_HedgingDesignationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_DesignatedAsHedgingInstrumentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DerivativeInstrumentRiskAxis" xlink:to="us-gaap_ForeignExchangeForwardMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_HedgingDesignationAxis" xlink:to="us-gaap_NondesignatedMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeNotionalAmount-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet-n2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-12-retirement-plans-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions" xlink:label="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanMember" xlink:label="nwpx_DefinedContributionPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DefinedContributionPlanNumberOfInvestmentOptions" xlink:label="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:label="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfNoncontributoryDefinedBenefitPlans" xlink:label="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OtherLongtermLiabilitiesMember" xlink:label="nwpx_OtherLongtermLiabilitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RetirementPlanExpense" xlink:label="nwpx_RetirementPlanExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent" xlink:label="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent" xlink:label="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation" xlink:label="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets" xlink:label="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanFairValueOfPlanAssets" xlink:label="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost" xlink:label="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncurrentAssetsMember" xlink:label="us-gaap_OtherNoncurrentAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent" xlink:label="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PensionPlansDefinedBenefitMember" xlink:label="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeAxis" xlink:label="us-gaap_RetirementPlanTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetirementPlanTypeDomain" xlink:label="us-gaap_RetirementPlanTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_RetirementPlanTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RetirementPlanTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="nwpx_DefinedContributionPlanMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="us-gaap_PensionPlansDefinedBenefitMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RetirementPlanTypeAxis" xlink:to="nwpx_NonqualifiedRetirementSavingsPlanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_OtherLongtermLiabilitiesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherNoncurrentAssetsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DefinedContributionPlanNumberOfInvestmentOptions-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfNoncontributoryDefinedBenefitPlans-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanFairValueOfPlanAssets-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationPlanAssets-2" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RetirementPlanExpense-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed" xlink:label="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfActiveStockIncentivePlans" xlink:label="nwpx_NumberOfActiveStockIncentivePlans-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PerformanceAwardsIssuedMultiplier" xlink:label="nwpx_PerformanceAwardsIssuedMultiplier-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance" xlink:label="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue" xlink:label="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_DirectorMember" xlink:label="srt_DirectorMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualAxis" xlink:label="srt_TitleOfIndividualAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:label="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockCapitalSharesReservedForFutureIssuance" xlink:label="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions" xlink:label="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeStockOptionMember" xlink:label="us-gaap_EmployeeStockOptionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PerformanceSharesMember" xlink:label="us-gaap_PerformanceSharesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestrictedStockUnitsRSUMember" xlink:label="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued" xlink:label="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod" xlink:label="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:label="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_TitleOfIndividualWithRelationshipToEntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_EmployeeStockOptionMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_PerformanceSharesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_TitleOfIndividualAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_TitleOfIndividualAxis" xlink:to="srt_DirectorMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfActiveStockIncentivePlans-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CommonStockCapitalSharesReservedForFutureIssuance-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber-2" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage-2" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_PerformanceAwardsIssuedMultiplier-2" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod-2" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue-2" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions-2" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1-2" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued-2" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-14-commitments-and-contingencies-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery" xlink:label="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-n2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedCostOfEPASelectedRemedy" xlink:label="nwpx_EstimatedCostOfEPASelectedRemedy-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EstimatedTimeToCompleteSelectedEPARemedy" xlink:label="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LowerWillametteGroupMember" xlink:label="nwpx_LowerWillametteGroupMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfPotentiallyResponsibleParties" xlink:label="nwpx_NumberOfPotentiallyResponsibleParties-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:label="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PortlandHarborSuperfundSiteMember" xlink:label="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CounterpartyNameAxis" xlink:label="srt_CounterpartyNameAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RepurchaseAgreementCounterpartyNameDomain" xlink:label="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteAxis" xlink:label="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EnvironmentalRemediationSiteDomain" xlink:label="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FireMember" xlink:label="us-gaap_FireMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LettersOfCreditOutstandingAmount" xlink:label="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:label="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyAccrualCarryingValueCurrent" xlink:label="us-gaap_LossContingencyAccrualCarryingValueCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LossContingencyNatureDomain" xlink:label="us-gaap_LossContingencyNatureDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventAxis" xlink:label="us-gaap_NoncatastrophicEventAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NoncatastrophicEventDomain" xlink:label="us-gaap_NoncatastrophicEventDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="srt_RepurchaseAgreementCounterpartyNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_NoncatastrophicEventDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="us-gaap_LossContingencyNatureDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="us-gaap_EnvironmentalRemediationSiteDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CounterpartyNameAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CounterpartyNameAxis" xlink:to="nwpx_LowerWillametteGroupMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_EnvironmentalRemediationSiteAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EnvironmentalRemediationSiteAxis" xlink:to="nwpx_PortlandHarborSuperfundSiteMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LossContingenciesByNatureOfContingencyAxis" xlink:to="nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_NoncatastrophicEventAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NoncatastrophicEventAxis" xlink:to="us-gaap_FireMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfPotentiallyResponsibleParties-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EstimatedCostOfEPASelectedRemedy-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EstimatedTimeToCompleteSelectedEPARemedy-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LossContingencyAccrualCarryingValueCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery-n2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LettersOfCreditOutstandingAmount-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-1-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax" xlink:label="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NumberOfMajorCustomers" xlink:label="nwpx_NumberOfMajorCustomers-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskBenchmarkDomain" xlink:label="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:label="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskByTypeAxis" xlink:label="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskPercentage1" xlink:label="us-gaap_ConcentrationRiskPercentage1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConcentrationRiskTypeDomain" xlink:label="us-gaap_ConcentrationRiskTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination" xlink:label="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityRevenueRecognized" xlink:label="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerConcentrationRiskMember" xlink:label="us-gaap_CustomerConcentrationRiskMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligation" xlink:label="us-gaap_RevenueRemainingPerformanceObligation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SalesRevenueNetMember" xlink:label="us-gaap_SalesRevenueNetMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-n2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="us-gaap_SalesRevenueNetMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ConcentrationRiskByTypeAxis" xlink:to="us-gaap_CustomerConcentrationRiskMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-n2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_NumberOfMajorCustomers-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ConcentrationRiskPercentage1-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ContractWithCustomerLiabilityRevenueRecognized-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligation-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-2-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:label="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueRemainingPerformanceObligationPercentage" xlink:label="us-gaap_RevenueRemainingPerformanceObligationPercentage-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationPercentage-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_OperatingLossCarryforwardsExpirationYear" xlink:label="nwpx_OperatingLossCarryforwardsExpirationYear-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TaxCreditCarryforwardExpirationYear" xlink:label="nwpx_TaxCreditCarryforwardExpirationYear-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MaximumMember" xlink:label="srt_MaximumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_MinimumMember" xlink:label="srt_MinimumMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeAxis" xlink:label="srt_RangeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_RangeMember" xlink:label="srt_RangeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalLossCarryforwardMember" xlink:label="us-gaap_CapitalLossCarryforwardMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DomesticCountryMember" xlink:label="us-gaap_DomesticCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ForeignCountryMember" xlink:label="us-gaap_ForeignCountryMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityAxis" xlink:label="us-gaap_IncomeTaxAuthorityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxAuthorityDomain" xlink:label="us-gaap_IncomeTaxAuthorityDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLossCarryforwards" xlink:label="us-gaap_OperatingLossCarryforwards-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StateAndLocalJurisdictionMember" xlink:label="us-gaap_StateAndLocalJurisdictionMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAmount" xlink:label="us-gaap_TaxCreditCarryforwardAmount-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardAxis" xlink:label="us-gaap_TaxCreditCarryforwardAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCreditCarryforwardNameDomain" xlink:label="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect" xlink:label="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued-2" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_RangeMember" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_DomesticCountryMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_RangeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MinimumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_RangeAxis" xlink:to="srt_MaximumMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TaxCreditCarryforwardAxis" xlink:to="us-gaap_CapitalLossCarryforwardMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_StateAndLocalJurisdictionMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeTaxAuthorityAxis" xlink:to="us-gaap_ForeignCountryMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCreditCarryforwardAmount-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_TaxCreditCarryforwardExpirationYear-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLossCarryforwards-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_OperatingLossCarryforwardsExpirationYear-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit" xlink:label="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual" xlink:href="nwpx-20201231.xsd#statement-note-18-restructuring-details-textual" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DemobilizationActivitiesMember" xlink:label="nwpx_DemobilizationActivitiesMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_NoteToFinancialStatementDetailsTextual" xlink:label="nwpx_NoteToFinancialStatementDetailsTextual" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EmployeeSeveranceMember" xlink:label="us-gaap_EmployeeSeveranceMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCostAndReserveAxis" xlink:label="us-gaap_RestructuringCostAndReserveAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfRestructuringDomain" xlink:label="us-gaap_TypeOfRestructuringDomain" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_NoteToFinancialStatementDetailsTextual" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_TypeOfRestructuringDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="us-gaap_EmployeeSeveranceMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_RestructuringCostAndReserveAxis" xlink:to="nwpx_DemobilizationActivitiesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-cash-flows-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIncomeTaxRefunds" xlink:label="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ProceedsFromIncomeTaxRefunds" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:label="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-1" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets" xlink:label="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-1" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationConsiderationTransferred1" xlink:label="us-gaap_BusinessCombinationConsiderationTransferred1-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:label="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets-1" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets-3" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_Goodwill-1" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationConsiderationTransferred1-1" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets-1" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract" xlink:to="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets-1" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities-1" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-n8" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GoodwillAcquiredDuringPeriod" xlink:label="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GoodwillAcquiredDuringPeriod" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_Goodwill-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:href="nwpx-20201231.xsd#statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_TermLoanMember" xlink:label="nwpx_TermLoanMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_WellsFargoBankNAMember" xlink:label="nwpx_WellsFargoBankNAMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:label="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentAxis" xlink:label="us-gaap_DebtInstrumentAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentCarryingAmount" xlink:label="us-gaap_DebtInstrumentCarryingAmount-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DebtInstrumentNameDomain" xlink:label="us-gaap_DebtInstrumentNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFinanceCostsNet" xlink:label="us-gaap_DeferredFinanceCostsNet-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityAxis" xlink:label="us-gaap_LineOfCreditFacilityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LineOfCreditFacilityLenderDomain" xlink:label="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo" xlink:label="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="us-gaap_DebtInstrumentNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="us-gaap_LineOfCreditFacilityLenderDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_DebtInstrumentAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_DebtInstrumentAxis" xlink:to="nwpx_TermLoanMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_LineOfCreditFacilityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LineOfCreditFacilityAxis" xlink:to="nwpx_WellsFargoBankNAMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DebtInstrumentCarryingAmount-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFinanceCostsNet-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LongTermDebtNoncurrent-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-cash-flows" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:label="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility-n8" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainOnInsuranceProceeds" xlink:label="nwpx_GainOnInsuranceProceeds-n8" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_ProceedsFromSaleOfFacility" xlink:label="nwpx_ProceedsFromSaleOfFacility" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AmortizationOfIntangibleAssets" xlink:label="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:label="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:label="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:label="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:label="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxesPaidNet" xlink:label="us-gaap_IncomeTaxesPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables" xlink:label="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccountsPayable" xlink:label="us-gaap_IncreaseDecreaseInAccountsPayable-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities" xlink:label="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:label="us-gaap_IncreaseDecreaseInContractWithCustomerAsset-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInInventories" xlink:label="us-gaap_IncreaseDecreaseInInventories-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:label="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestPaidNet" xlink:label="us-gaap_InterestPaidNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations" xlink:label="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:label="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNoncashIncomeExpense" xlink:label="us-gaap_OtherNoncashIncomeExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsOfDebtIssuanceCosts" xlink:label="us-gaap_PaymentsOfDebtIssuanceCosts-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:label="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:label="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquireIntangibleAssets" xlink:label="us-gaap_PaymentsToAcquireIntangibleAssets-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:label="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:label="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:label="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromLinesOfCredit" xlink:label="us-gaap_ProceedsFromLinesOfCredit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:label="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLinesOfCredit" xlink:label="us-gaap_RepaymentsOfLinesOfCredit-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RepaymentsOfLongTermDebt" xlink:label="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensation" xlink:label="us-gaap_ShareBasedCompensation-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfCashFlowsAbstract" xlink:label="us-gaap_StatementOfCashFlowsAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SupplementalCashFlowInformationAbstract" xlink:label="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfCashFlowsAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_GainLossOnDispositionOfFacility-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_AmortizationOfIntangibleAssets-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="nwpx_GainOnInsuranceProceeds-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_ShareBasedCompensation-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_OtherNoncashIncomeExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables-n9" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInContractWithCustomerAsset-n8" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInInventories-n9" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets-n9" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccountsPayable-2" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities-2" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInOperatingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquirePropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_PaymentsToAcquireIntangibleAssets-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="nwpx_ProceedsFromSaleOfFacility" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromInsuranceSettlementInvestingActivities" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInInvestingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromLinesOfCredit" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLinesOfCredit-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_ProceedsFromIssuanceOfLongTermDebt" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_RepaymentsOfLongTermDebt-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_FinanceLeasePrincipalPayments-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsOfDebtIssuanceCosts-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_NetCashProvidedByUsedInFinancingActivities-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect-3" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-4" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations-5" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SupplementalCashFlowInformationAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_InterestPaidNet" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_SupplementalCashFlowInformationAbstract" xlink:to="us-gaap_IncomeTaxesPaidNet" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_CapitalExpendituresIncurredButNotYetPaid" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:label="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:label="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDue" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount" xlink:label="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityPaymentsDue-3" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue-3" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount-n8" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="18" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="19" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent-n8" xlink:type="arc"/>
    <link:presentationArc order="20" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="21" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:href="nwpx-20201231.xsd#statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:label="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:label="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AwardTypeAxis" xlink:label="us-gaap_AwardTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:label="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:label="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AwardTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AwardTypeAxis" xlink:to="nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber-5" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:label="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent" xlink:label="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-5" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:href="nwpx-20201231.xsd#statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:label="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllowanceForCreditLossMember" xlink:label="us-gaap_AllowanceForCreditLossMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:label="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesBalance" xlink:label="us-gaap_ValuationAllowancesAndReservesBalance-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:label="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDeductions" xlink:label="us-gaap_ValuationAllowancesAndReservesDeductions-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesDomain" xlink:label="us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:label="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_AllowanceForCreditLossMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesDeductions-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ValuationAllowancesAndReservesBalance-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:href="nwpx-20201231.xsd#statement-consolidated-balance-sheets" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountsPayableCurrent" xlink:label="us-gaap_AccountsPayableCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalCommonStock" xlink:label="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Assets" xlink:label="us-gaap_Assets-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrent" xlink:label="us-gaap_AssetsCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AssetsCurrentAbstract" xlink:label="us-gaap_AssetsCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:label="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommitmentsAndContingencies" xlink:label="us-gaap_CommitmentsAndContingencies" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockValue" xlink:label="us-gaap_CommonStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerAssetNetCurrent" xlink:label="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ContractWithCustomerLiabilityCurrent" xlink:label="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Goodwill" xlink:label="us-gaap_Goodwill" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_Liabilities" xlink:label="us-gaap_Liabilities-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesAndStockholdersEquity" xlink:label="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrent" xlink:label="us-gaap_LiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LiabilitiesCurrentAbstract" xlink:label="us-gaap_LiabilitiesCurrentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtCurrent" xlink:label="us-gaap_LongTermDebtCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LongTermDebtNoncurrent" xlink:label="us-gaap_LongTermDebtNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityCurrent" xlink:label="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:label="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsNoncurrent" xlink:label="us-gaap_OtherAssetsNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherLiabilitiesNoncurrent" xlink:label="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PreferredStockValue" xlink:label="us-gaap_PreferredStockValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:label="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReceivablesNetCurrent" xlink:label="us-gaap_ReceivablesNetCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsAccumulatedDeficit" xlink:label="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfFinancialPositionAbstract" xlink:label="us-gaap_StatementOfFinancialPositionAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquityAbstract" xlink:label="us-gaap_StockholdersEquityAbstract" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfFinancialPositionAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AssetsCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ReceivablesNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerAssetNetCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_InventoryNet" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_AssetsCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset-2" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Goodwill" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_OtherAssetsNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AssetsCurrentAbstract" xlink:to="us-gaap_Assets-3" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccountsPayableCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LiabilitiesCurrent-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_LongTermDebtNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_Liabilities-3" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_LiabilitiesCurrentAbstract" xlink:to="us-gaap_CommitmentsAndContingencies" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquityAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_PreferredStockValue" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_CommonStockValue" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_StockholdersEquity-3" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StockholdersEquityAbstract" xlink:to="us-gaap_LiabilitiesAndStockholdersEquity-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-operations" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GainLossOnDispositionOfFacility" xlink:label="nwpx_GainLossOnDispositionOfFacility-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:label="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_GrossProfit" xlink:label="us-gaap_GrossProfit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementAbstract" xlink:label="us-gaap_IncomeStatementAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InterestExpense" xlink:label="us-gaap_InterestExpense-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InvestmentIncomeInterestAndDividend" xlink:label="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingIncomeLoss" xlink:label="us-gaap_OperatingIncomeLoss-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RestructuringCharges" xlink:label="us-gaap_RestructuringCharges" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpense" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_GrossProfit-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_GainLossOnDispositionOfFacility-n8" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RestructuringCharges" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InvestmentIncomeInterestAndDividend" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InterestExpense-n8" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss-3" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-comprehensive-income" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ComprehensiveIncomeNetOfTax" xlink:label="us-gaap_ComprehensiveIncomeNetOfTax-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:label="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:label="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract" xlink:to="us-gaap_ComprehensiveIncomeNetOfTax-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AccruedLiabilityMember" xlink:label="nwpx_AccruedLiabilityMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedBonusesCurrent" xlink:label="us-gaap_AccruedBonusesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedLiabilitiesCurrent" xlink:label="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccruedVacationCurrent" xlink:label="us-gaap_AccruedVacationCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilitiesCurrent" xlink:label="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiabilityCurrent" xlink:label="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAccruedLiabilitiesCurrent" xlink:label="us-gaap_OtherAccruedLiabilitiesCurrent-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WorkersCompensationLiabilityCurrent" xlink:label="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_AccruedLiabilityMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedBonusesCurrent" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedVacationCurrent" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLiabilitiesCurrent" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WorkersCompensationLiabilityCurrent" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherAccruedLiabilitiesCurrent-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccruedLiabilitiesCurrent-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:label="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareAbstract" xlink:label="us-gaap_EarningsPerShareAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareBasic" xlink:label="us-gaap_EarningsPerShareBasic-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EarningsPerShareDiluted" xlink:label="us-gaap_EarningsPerShareDiluted-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:label="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:label="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:label="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EarningsPerShareAbstract" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareBasic-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_EarningsPerShareAbstract" xlink:to="us-gaap_EarningsPerShareDiluted-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_BacklogMember" xlink:label="nwpx_BacklogMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:label="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:label="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TradeNamesMember" xlink:label="us-gaap_TradeNamesMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="nwpx_BacklogMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinitelivedIntangibleAssetsAcquired1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details" xlink:href="nwpx-20201231.xsd#statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:label="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_GenevaPipeCompanyIncMember" xlink:label="nwpx_GenevaPipeCompanyIncMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:label="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAcquireeDomain" xlink:label="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionAxis" xlink:label="us-gaap_BusinessAcquisitionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss" xlink:label="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BusinessAcquisitionsProFormaRevenue" xlink:label="us-gaap_BusinessAcquisitionsProFormaRevenue-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BusinessAcquisitionAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_GenevaPipeCompanyIncMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BusinessAcquisitionAxis" xlink:to="nwpx_AmeronWaterTransmissionGroupLLCMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaRevenue-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:href="nwpx-20201231.xsd#statement-note-5-inventories-components-of-inventories-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:label="nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:label="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryNet" xlink:label="us-gaap_InventoryNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryRawMaterialsNetOfReserves" xlink:label="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventorySuppliesNetOfReserves" xlink:label="us-gaap_InventorySuppliesNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_InventoryWorkInProcessNetOfReserves" xlink:label="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-5-inventories-components-of-inventories-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventorySuppliesNetOfReserves" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_InventoryNet-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:href="nwpx-20201231.xsd#statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EquipmentUnderFinanceLeaseMember" xlink:label="nwpx_EquipmentUnderFinanceLeaseMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress" xlink:label="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-3" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:label="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:label="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BuildingMember" xlink:label="us-gaap_BuildingMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ConstructionInProgressMember" xlink:label="us-gaap_ConstructionInProgressMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LandImprovementsMember" xlink:label="us-gaap_LandImprovementsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_MachineryAndEquipmentMember" xlink:label="us-gaap_MachineryAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:label="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentGross" xlink:label="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentNet" xlink:label="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:label="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_LandImprovementsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_BuildingMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_MachineryAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="nwpx_EquipmentUnderFinanceLeaseMember" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="us-gaap_ConstructionInProgressMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:href="nwpx-20201231.xsd#statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:label="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CustomerRelationshipsMember" xlink:label="us-gaap_CustomerRelationshipsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:label="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:label="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsGross" xlink:label="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:label="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FiniteLivedIntangibleAssetsNet" xlink:label="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherIntangibleAssetsMember" xlink:label="us-gaap_OtherIntangibleAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TrademarksAndTradeNamesMember" xlink:label="us-gaap_TrademarksAndTradeNamesMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_CustomerRelationshipsMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_TrademarksAndTradeNamesMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="us-gaap_OtherIntangibleAssetsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseLiability" xlink:label="nwpx_LeaseLiability-3" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_LeaseRightOfUseAsset" xlink:label="nwpx_LeaseRightOfUseAsset-3" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_PropertyAndEquipmentMember" xlink:label="nwpx_PropertyAndEquipmentMember" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:label="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseLiability" xlink:label="us-gaap_FinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAsset" xlink:label="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseLiability" xlink:label="us-gaap_OperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseRightOfUseAsset" xlink:label="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="nwpx_PropertyAndEquipmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_LeaseRightOfUseAsset-3" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_LeaseLiability-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-lease-cost-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:label="nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestExpense" xlink:label="us-gaap_FinanceLeaseInterestExpense-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseRightOfUseAssetAmortization" xlink:label="us-gaap_FinanceLeaseRightOfUseAssetAmortization-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_LeaseCost" xlink:label="us-gaap_LeaseCost-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseCost" xlink:label="us-gaap_OperatingLeaseCost-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ShortTermLeaseCost" xlink:label="us-gaap_ShortTermLeaseCost-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_VariableLeaseCost" xlink:label="us-gaap_VariableLeaseCost-1" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-lease-cost-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseRightOfUseAssetAmortization-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseInterestExpense-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseCost-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_ShortTermLeaseCost-1" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_VariableLeaseCost-1" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_LeaseCost-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:label="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:label="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:label="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-1" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1-1" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1-1" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent-1" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent-1" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:href="nwpx-20201231.xsd#statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:label="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeaseInterestPaymentOnLiability" xlink:label="us-gaap_FinanceLeaseInterestPaymentOnLiability-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FinanceLeasePrincipalPayments" xlink:label="us-gaap_FinanceLeasePrincipalPayments-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OperatingLeasePayments" xlink:label="us-gaap_OperatingLeasePayments-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:label="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeaseInterestPaymentOnLiability-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OperatingLeasePayments-n8" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_FinanceLeasePrincipalPayments-n9" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:href="nwpx-20201231.xsd#statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:label="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredCompensationPlanAssets" xlink:label="us-gaap_DeferredCompensationPlanAssets" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DerivativeLiabilities" xlink:label="us-gaap_DerivativeLiabilities-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:label="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel1Member" xlink:label="us-gaap_FairValueInputsLevel1Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel2Member" xlink:label="us-gaap_FairValueInputsLevel2Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueInputsLevel3Member" xlink:label="us-gaap_FairValueInputsLevel3Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:label="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueInputsLevel1Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueInputsLevel2Member" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="us-gaap_FairValueInputsLevel3Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredCompensationPlanAssets" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DerivativeLiabilities-n9" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:href="nwpx-20201231.xsd#statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:label="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AllocatedShareBasedCompensationExpense" xlink:label="us-gaap_AllocatedShareBasedCompensationExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfSalesMember" xlink:label="us-gaap_CostOfSalesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationAxis" xlink:label="us-gaap_IncomeStatementLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeStatementLocationDomain" xlink:label="us-gaap_IncomeStatementLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:label="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_IncomeStatementLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_IncomeStatementLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_CostOfSalesMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_IncomeStatementLocationAxis" xlink:to="us-gaap_SellingGeneralAndAdministrativeExpensesMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AllocatedShareBasedCompensationExpense-2" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_CA" xlink:label="country_CA" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd#country_US" xlink:label="country_US" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:label="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_SegmentGeographicalDomain" xlink:label="srt_SegmentGeographicalDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_StatementGeographicalAxis" xlink:label="srt_StatementGeographicalAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="srt_SegmentGeographicalDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_StatementGeographicalAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_US" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_StatementGeographicalAxis" xlink:to="country_CA" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details" xlink:href="nwpx-20201231.xsd#statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:label="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:label="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredAtPointInTimeMember" xlink:label="us-gaap_TransferredAtPointInTimeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TransferredOverTimeMember" xlink:label="us-gaap_TransferredOverTimeMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TransferredOverTimeMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_TimingOfTransferOfGoodOrServiceAxis" xlink:to="us-gaap_TransferredAtPointInTimeMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments" xlink:label="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit" xlink:label="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentFederalTaxExpenseBenefit" xlink:label="us-gaap_CurrentFederalTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentForeignTaxExpenseBenefit" xlink:label="us-gaap_CurrentForeignTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:label="us-gaap_CurrentIncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:label="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredForeignIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:label="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentFederalTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentStateAndLocalTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentForeignTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CurrentIncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredFederalIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredForeignIncomeTaxExpenseBenefit-2" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-n8" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:label="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits" xlink:label="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-n8" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:label="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:label="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:label="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:label="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationOtherAdjustments" xlink:label="us-gaap_IncomeTaxReconciliationOtherAdjustments-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:label="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss-n8" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationNondeductibleExpense" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxReconciliationOtherAdjustments-2" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-3" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxAssetTradeReceivableNet" xlink:label="nwpx_DeferredTaxAssetTradeReceivableNet-2" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_DeferredTaxLiabilitiesContractAssetsNet" xlink:label="nwpx_DeferredTaxLiabilitiesContractAssetsNet-n8" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationAxis" xlink:label="us-gaap_BalanceSheetLocationAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_BalanceSheetLocationDomain" xlink:label="us-gaap_BalanceSheetLocationDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxAssetsNet" xlink:label="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilities" xlink:label="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:label="us-gaap_DeferredIncomeTaxLiabilitiesNet-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsGross" xlink:label="us-gaap_DeferredTaxAssetsGross-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsInventory" xlink:label="us-gaap_DeferredTaxAssetsInventory-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsNet" xlink:label="us-gaap_DeferredTaxAssetsNet-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsOther" xlink:label="us-gaap_DeferredTaxAssetsOther-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwards" xlink:label="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits" xlink:label="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxAssetsValuationAllowance" xlink:label="us-gaap_DeferredTaxAssetsValuationAllowance-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities-n10" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilities" xlink:label="us-gaap_DeferredTaxLiabilities-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets" xlink:label="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPrepaidExpenses" xlink:label="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:label="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n9" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherAssetsMember" xlink:label="us-gaap_OtherAssetsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_BalanceSheetLocationDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_BalanceSheetLocationAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_BalanceSheetLocationAxis" xlink:to="us-gaap_OtherAssetsMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits-2" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsInventory-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredTaxAssetTradeReceivableNet-2" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOperatingLossCarryforwards-2" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsTaxCreditCarryforwards-2" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsOther-2" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsGross-3" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsValuationAllowance-n9" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxAssetsNet-3" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="nwpx_DeferredTaxLiabilitiesContractAssetsNet-n8" xlink:type="arc"/>
    <link:presentationArc order="10" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment-n9" xlink:type="arc"/>
    <link:presentationArc order="11" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets-n9" xlink:type="arc"/>
    <link:presentationArc order="12" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilitiesPrepaidExpenses-n9" xlink:type="arc"/>
    <link:presentationArc order="13" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilities-n10" xlink:type="arc"/>
    <link:presentationArc order="14" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilities-n10" xlink:type="arc"/>
    <link:presentationArc order="15" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc"/>
    <link:presentationArc order="16" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredIncomeTaxLiabilitiesNet-n8" xlink:type="arc"/>
    <link:presentationArc order="17" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_DeferredTaxLiabilities-n8" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:href="nwpx-20201231.xsd#statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:label="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefits" xlink:label="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:label="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_UnrecognizedTaxBenefits-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-3" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax" xlink:label="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax-n8" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/totalLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax-3" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity" xlink:href="nwpx-20201231.xsd#statement-consolidated-statements-of-stockholders-equity" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity" xlink:type="extended">
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:label="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd#srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:label="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201409Member" xlink:label="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccountingStandardsUpdate201802Member" xlink:label="us-gaap_AccountingStandardsUpdate201802Member" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdditionalPaidInCapitalMember" xlink:label="us-gaap_AdditionalPaidInCapitalMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:label="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:label="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CommonStockMember" xlink:label="us-gaap_CommonStockMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent" xlink:label="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:label="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RetainedEarningsMember" xlink:label="us-gaap_RetainedEarningsMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_SharesOutstanding" xlink:label="us-gaap_SharesOutstanding-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementOfStockholdersEquityAbstract" xlink:label="us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation" xlink:label="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-4" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StockholdersEquity" xlink:label="us-gaap_StockholdersEquity-5" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_TypeOfAdoptionMember" xlink:label="us-gaap_TypeOfAdoptionMember" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201409Member" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_AccountingStandardsUpdate201802Member" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_CommonStockMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_RetainedEarningsMember" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_AdjustmentsForNewAccountingPronouncementsAxis" xlink:to="us-gaap_TypeOfAdoptionMember" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="srt_CumulativeEffectPeriodOfAdoptionAxis" xlink:to="srt_CumulativeEffectPeriodOfAdoptionDomain" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-4" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-4" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent-n8" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax" xlink:type="arc"/>
    <link:presentationArc order="5" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation" xlink:type="arc"/>
    <link:presentationArc order="6" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation-n8" xlink:type="arc"/>
    <link:presentationArc order="7" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc"/>
    <link:presentationArc order="8" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_SharesOutstanding-5" xlink:type="arc"/>
    <link:presentationArc order="9" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_StockholdersEquity-5" xlink:type="arc"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:href="nwpx-20201231.xsd#statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="simple"/>
  <link:presentationLink xlink:role="http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="extended">
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_EntityDomain" xlink:label="dei_EntityDomain" xlink:type="locator"/>
    <link:loc xlink:href="https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd#dei_LegalEntityAxis" xlink:label="dei_LegalEntityAxis" xlink:type="locator"/>
    <link:loc xlink:href="nwpx-20201231.xsd#nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:label="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:label="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:label="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_CostOfGoodsAndServicesSold" xlink:label="us-gaap_CostOfGoodsAndServicesSold" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_EquityComponentDomain" xlink:label="us-gaap_EquityComponentDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_IncomeTaxExpenseBenefit" xlink:label="us-gaap_IncomeTaxExpenseBenefit-n8" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_NetIncomeLoss" xlink:label="us-gaap_NetIncomeLoss" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_OtherNonoperatingIncomeExpense" xlink:label="us-gaap_OtherNonoperatingIncomeExpense-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:label="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax" xlink:label="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-2" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementEquityComponentsAxis" xlink:label="us-gaap_StatementEquityComponentsAxis" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementLineItems" xlink:label="us-gaap_StatementLineItems" xlink:type="locator"/>
    <link:loc xlink:href="http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd#us-gaap_StatementTable" xlink:label="us-gaap_StatementTable" xlink:type="locator"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details" xlink:to="us-gaap_StatementTable" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_LegalEntityAxis" xlink:to="dei_EntityDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_EquityComponentDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis" xlink:to="us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementEquityComponentsAxis" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementEquityComponentsAxis" xlink:to="us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="dei_LegalEntityAxis" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementTable" xlink:to="us-gaap_StatementLineItems" xlink:type="arc"/>
    <link:presentationArc order="0" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc"/>
    <link:presentationArc order="1" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_OtherNonoperatingIncomeExpense-2" xlink:type="arc"/>
    <link:presentationArc order="2" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_IncomeTaxExpenseBenefit-n8" xlink:type="arc"/>
    <link:presentationArc order="3" preferredLabel="http://www.xbrl.org/2003/role/label" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_NetIncomeLoss" xlink:type="arc"/>
    <link:presentationArc order="4" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" xbrldt:closed="true" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="us-gaap_StatementLineItems" xlink:to="us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax-2" xlink:type="arc"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>13
<FILENAME>graph1.jpg
<TEXT>
begin 644 graph1.jpg
M_]C_X  02D9)1@ ! 0$ 8 !@  #_VP!#  (! 0(! 0(" @(" @(" P4# P,#
M P8$! ,%!P8'!P<&!P<("0L)" @*" <'"@T*"@L,# P,!PD.#PT,#@L,# S_
MVP!# 0(" @,# P8# P8," <(# P,# P,# P,# P,# P,# P,# P,# P,# P,
M# P,# P,# P,# P,# P,# P,# P,# S_P  1" (L IX# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
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
MV?\ X.:AXHT+P!XJ^)NI64D*1^'_  X(3J%V'D5&9/-=$P@)9LMT4XS7R/\
MLI?\%U5_:A\9:[;M^SY\7_!OA/P5JVH:-XP\6:V;!-)\(W-A TUVMXRSEE\M
M0 VU3@N* /OFBOSQTS_@XP^'\FB:;XXU3X0_'+0/@3K.H)IUE\4M0\/HF@N7
MD\I+AU$AGCMF<$"4Q]@,9.*[;_@H)_P62E_X)_>(=^H_ ;XK^,O!<\EA;V?B
M_0S8MI%_<7FT0PQL\ZN6+L$Y7!/0XYH ^V**_/\ _:5_X+YZ/^QU\ _#'C'X
MF_ WXO>$=:\5:S?:?:^$[J*S?5ULK*V2XN=394F*?9D$@4G=G(/  S7OW[37
M_!17PC^S9IWP0OGT[5/$NG?'CQ7IOA70KK33'Y<+7T330W,F]E_=;%R=N6Y&
M!0!]!445\:_M3_\ !7>;X ?MDWGP1\+? OXJ_%WQ;IWANW\4W9\++9M';VDT
MSPJ6\Z9#PZ@'C^(4 ?95%?!>J_\ !?OX?Z;^Q9XN^+A^'WQ(AU3P!XQ@\!^(
M_!-W:0VVNZ7JLLB1K$5:3RV7,BX8/SR,9%>B?L^?\%'/B%\:?B VC:Q^RG\=
M/ -FMA=7G]JZXFGBU+PQ-(D'[NX9O,E(")QC<PR0,F@#ZPHK\Z=,_P""^'B3
M5OCU=?#&']C_ /:(;QY8Z3'KUSHVS3/M,%A)+Y*7)!N0NPR97.>HKW[]GG_@
MIQX;_:(^#_QU\86/A?Q'IEM\!?$.M^'-6M;MH/.U"?2X?-F:#:Y4*WW5WE3D
M<X% 'TQ17P3XS_X+PZ-IO@O]GR_\*_!CXH?$#6?VC-"OM?\ #^A:(+-KZUAM
M%C>59=\JKN"2;OE) "FM3P3_ ,%S/".L?#3XYWWB?X8_$[X?^-?@!H*^)?$7
M@WQ!9P0ZC<6+QF2*6W=9&B<,!W88++ZT ?<5%?%FC_\ !<;X8>+/V/?@O\9M
M"TG7]8T+XR^,].\"064+0"[T'4KN1XBEV"X4")T.[:22K*R@A@:]&^$7_!43
MX7_&G]L_Q9\#-'N=7/C+PG#%).DVEW,:R.3<^:I#1@Q+&+=#YDNV.07,'EL^
M\4 ?1M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% 'XZ?L:?M:ZI_P16^$_QG^"'Q!^$WQ0
M\1_$&7QKK>O^!6T7PO=:IIWQ%BOF!M2ES"K(C[@JRAR"BD#YF!6NK_:*\1_%
M#]G_ /;=_9>_:]^)GPAUZ'P[!\.;KPCX[T3PG;2:Y-\/;FX=IHYS#&OF-&!(
M(Y"@.S8ZY8[=_P"L%% 'XL_&G4-?_P""BG[27[2_[2'@_P !^--"^%'A?]F_
M7OA[H^HZUH,^G7OC349XYYRUM;R*)GBCW%<E<[E4 ?-@?/W[/_[&WCF#QO\
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
MQ^_X)[_&+2/@=9_$;5?B#J>D1^'],@N?!>IZ<PEU*46?F(\\"J3&DDDG&<;
M:\#^ WP3_:&_X)??M[?LH^)_B/X$^'>F^!Y_#<'P(U"Z\ W^HZF\MN1YUG=:
MBLL2A2+H;S(OR@&3) "U^Q=Y\>? VG^!K+Q//XS\*0>&M3D6&SU:35[=;&[=
MB5"QS%]CDE6  ).0?2LC]I[]HBT_9A^$$_BVXT#Q#XK(OK'3;32-!CADU#4;
MF\NHK6".(3211Y,DR?>D48SS0!\D_LF>&]2LO^#@3]K74YM.U"'3+WP9X0CM
MKR2V=;>X9+=MZI(1M8KGG!.*^+?A?^R!XG^+_P#P;A>)KK2M'UBP^)/PE^(^
MM_$CPK$]C(EX+O3]4EG&R-@'.^ RA0.K%<9Q7ZJ? ']O/3/B_P".=;\+>)O
M_COX0^)M$L;;5#I_C2*R@^VVEQ.UO'-#-:W,\#CSU\LKY@<,R?+\PSZCXJ^-
M'@_P+:&?6_%GAK1X%OAIADOM3@MT%V5#BWR[ >:5(;9][!!QB@#\F?V4/AOX
MQ^./_!*+]M[]IKQQX4U#2/B1^TIH.ORVFCR6LK75CI-CIL]I8VJ(P\PY82X&
M!N'ED \5Y7_P2N^)'[/7PBT7X$_VK\8?VW8?'^DV^DV]WX3N&U]_"L6H[(XV
MM#;_ &7R?L:RDJ%W[ @'.!7[AW7Q/\-6'CJU\+S^(=#A\37L!NK;2'OXEOKB
M(9S(D!;S&0;6^8#'RGTKE?BM^U9X*^%7P]\?:^^LV.N/\-=.FU+7M+TF\@N=
M1LDC1G*/#O!1V"G:'*Y]: /1Z_(_]BW]E?Q9^T5^P%_P47^&^G6E[HWB#Q_\
M6_&UKHK7\+VB7;2PP^20S@9BD8!=XRN">:_1"3]M+PX/@YXU\9PZ+XMU"U\$
M:]<^&YM.T_3?MFHZE>PW"6XCMH8V._S)9$52Q4 '<Y106' 0?\%2?#[>!+R>
M?X;?%>U\?6?B*'PM_P *]?3+5O$<]]-:&]BV;;DVAA:T5YS-]I$:I&X9@PVT
M ?G/\3?VV]4^.W_!&O3_ -CS1?@5\7+?]HB]\+:=\/KGPO<^$+FWT_2GMO)A
MDU&2\9?LZVNR'S5DWG!=,X&6KZ*_X+3_  /USP!_P1\^$?@6&&]\1:MX0\3>
M"-,NI+&VDG:<VDL,<DVU03M^0MG'>OHCQ1_P5C\&:5X&\.:OHO@CXI>+[[6K
M'4-5U'0]'T6)M5\+VFG7!M;^6_BEFC"&"X#1&*-I))&1O*20#-7_ !5_P5.^
M'_A_X@V.FV>B^-O$'AATT@ZKXSTS34D\/^'6U41MIZW4KR++F59H&)BBD6)9
MXVD*!@: /@_]L3X>?'C]O_\ X*^_%D_"_P $> /$?@SX1_#UOAG,OQ N;_3=
M.N9=:C>2_GLV@B8RRB-3 Q^ZH4=20:\#N/C)XO\ !?\ P3N_9$T?XH>'/%EO
MKO[*/[1%KX7\6?9-&N[V7[!IL-RT5W"BQ[Y8?(*1JRC#&(XZU^XEY^T?X<TK
MXVZUX&OY9--OM!T"Q\175_=M'#8""\NKFUB02,^?,\RV<$$ ?.F"2<#4;XZ^
M"%\$VWB4^,?"H\.7LXM;?53JT'V*>8N4$:3;]C.6!7:#G((ZT >7?L7_ /!2
M/X9?M[:AX@MOA\WBYI/#,<$M[_;7AB_T=<3%PFPW,2"0_NVR%SCC/45\#?MD
M_L#Z]^V[_P %WOB5IVF>.OBM\*;F#X'64FC>)O"6J7&E0MJ OY%CBN)(QB>$
M%PS0AU)VY!!&:_2'X*?MC^!?C5\*?!GBR/5K7PY!X_:2/1+#7+J"TOKV1)6B
M,:1^8=[[E^ZA8X8>M=W;_$/0+N_CM8M<T>2ZFO)=/CA2]C,CW,2EI8 N<F1%
M!+)]Y0"2!0!_/KXZ\-?V?_P05^)/PNU/X:>+_!WQC\ ?%?2%^)<]K'?ZA?\
MB>Y-\-VNPW,F^28RQQ.<HQ56CRH"NF?M7_@EG\6?V>-._:^TFP\!?&7]LSQY
MXGUZQNK"UTSXCRZ[=:$ (_/>5_M5LD,<BK"0KLPY8J,E@*_4VB@#X%^'7AK4
MH?\ @Y6^(NK-IVH+I4WP)TZVCOC;.+9Y1JX)C$F-I?!SMSG':OD_PI^T8W_!
M-O0OVX/@S\0OA[\5KGQ=\7O&WB;Q%X$_L+PK=:G:^*K;5X#';"">%#&K*^ X
M<C;G'+ K7[544 ?AOKO_  3N\5^)?B)_P3-^$GC*;XD^ ;[1?A[XBM->U7P=
MJ,NFZEX>N?L-O,L1O(U81-N&QP>&PRYYKG?A[\%]7_9C_9=_X*"? SQ]X7\6
M>)/CR/!U]?VGQ&OFO]5N?B5H/E%;3$TK2*LL DC4PQD?>Q@F)C7[U44 ?SH?
M'']B'XA?L?\ B/\ 9$B\"^'M5G^"?QN\5?#[QKKFE0V,I_X1+Q39);QW<FQ1
MF%+F&9G;<!\T3CCRQG]]O#G[,_P^\(?$VX\::7X,\.6'BV\ENIKC68+%$O9W
MN?)$Y>4#<V_[/#G)_P"62^E=S10 4444 %%%% !1110 4444 %%%% !1110
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
M1>*-;TY6W*,X%M96ZX]5+=6-8OPO\8?M$?M*Z&WQB\,?$SP3X:\)G7;R#3/
M>I>'E:RNM+M+^2TD>]U+<;F*[D2&:0&)1'&QC4HX5RP!XWX+_P""4_QJ\;'6
MG\8ZUH6B:IX\\+:OK'B#4K#4)+@P^,Y;.YT>PGC&T-Y$6F7 .X8821+QWKC/
MA+_P1\^)NE_LY_$_2?$'A&&6ZU>RT*RT[P^GC#2+./4)M,O&N5O(I+#1+>VC
M=21Y0O(;GS/F2<;,5],>)_\ @M?X$\'_ +3?C'X97_A3Q-'?>%=,UO4(KR.]
MTZ<:BVDVKW5S']GCN6GM]T<3F-KB.,/A2,!@:],_9H_;ZB^/OBG5-$UCX<>.
M_AOJ\'A^'Q9I=KXB2T+:WI,I*"XB-O-*(W5P%>&4I(F^,E<-0!X!^P[^P3\3
M?@3\3/@MXE\7>"_A[>R>';?Q5I=Y+:_8(-0\+6FH3VMW9RE[:TA@NKC?#<Q2
MFVBMU_TPL 1O#>@>+O\ @E];_'G]J'XN^*O&_B?XC:?X4\97NFK;Z#X>\:7>
MF:5KMG%IEM;SI?6L!4/O>.2-LMEH\#(%?-WP3_X*R?%H^%O$GQ#\2:G=3Z=K
M_@+5O%_AKPUKG@"?1-*>>WC26"'2]2#F2]CB211<_: CN/WL'[L$#UCQA\?_
M (^_ 'Q7??!W7/B/X>\5^-_%\_AC^PO&?_"*QV8\/KJMY?6UV&LD?RI_(%@[
MP;R,F51*6"G< <#^TG^RKXA\(_MF^%-OP@^'_P 68]:\4>+_ !'HWA;6[V.V
ML9K$Z-H%DC[WMY88ID:%P$DC(V X(;;CS[XO?\$0_C'?-X+LK*\T[7+=O!FG
M>%YFL-7T^RM_!4EO=74Y%LU_I=[=&VC%RBQ-:26\W^C#<,["OUWX>_;$\=_
M[]CWXX:IXRN-,\>>-?@CK=SX?M]32T&F0>(F:WLY[.:XBCRL)_TZ))O+^7]T
M[* " -?1K[XS?L=Q:CXY^,7QB\*^/_A]9Z'?:GK]I%X631[S19X(?/4:8(7=
MKF(A9E,<Y,F!&1(3N! .@_:=^%/Q)\,?%7P/\5/A?I>B>-O$?A/1K[PWJOAW
M6M5.E_VU87;VLID@N_+D6*YCGM(F^="CHT@RI"FO&/CG^SK\>/CB/ WQ$\>_
M#'X3_$W4?#FL:I.GPJO-75=-TJRN[2""W<7T]N\5U>P-%*S.\"IMO)5CQL4M
MV.H?\%8W\(Z3>V_BCX'?%?PSXR%QHXTOPM<'3)K_ %VVU2\^Q6T\#Q730*5G
MPLL<LB/$&4L,&N<^(G_!<3PK\,-!\&-J_P -_&NG:_XFU/5M(O\ 1M0U'2-/
M?1KG2[I+:[M_M%Q=QVUU<%Y%:*&WE=YD^91B@#RG4?\ @C9XEU_X%ZYHNO>&
M/ &M:\GPSL?#WAS]^7M_#=^-;U*_>UL9)4\R&"W@NK:&*8;7(A  4#%)^U7^
MQ$WPF_:6\.6_A;X-?#7Q;X;\4?$T>(-"\%71BT[2-0^S>#+BWN&D @>&";SH
MBREXV5RJEL$Y'M>E?\%.O&6G_&;QIX5OO@QXJUJ1?B,O@GP>NE7NGJVIH-%B
MU.26<RW*B()%YDK,^WY)HD +JXKK=6_X*H>#O#_PH\->+[WPYXJ%AXF\/ZOK
MUM;V\44]TWV"]M;(6JH'^>>>>[B6, [>?F9: /AK]JG_ ((U?&SXC_"'1/#F
MC^#/A_<I)X>U:.PL].\00Z7;>!+R[U6ZU!+-9Y;":YN+.&.:&*);9K8;XY-P
MV,FSZ-C_ .";EEX4\<R?$/Q1X0\"V<S?$SQ)XJ\5:S(8S=S>&KW1;VTDBFF"
M;W4^9$&ASM 3=U6NH^,?_!1?XC^$]2^&%K+\&?&?@K_A+[OQ!9^(H-3GTN>^
MT..PTM[R.ZMRETT%PA'[S*LX/DR1D!L9T?"__!5"SM[;0B_@'XC^(?!]E'H>
MG>*/'ZP:?#I^BZAJ5M:2Q+/ )Q,^/MML9FMHGBA\[KA3@ Y?_@E9IGB'P%\(
M-,\8W=A)XQD^)_B*/P[INLQL\#0^$]*M9[71[YT=-Q$T5MY[ [,MJ);V,W[:
MO_!/O7?C]^U1KNK6O@3P5KOA?QMI7A*TU75;RXC@O(!I/B'[9=VLB>47FBN+
M20#(D _T5492"N/1_P!FO_@I39_M$_&2P\*2?#7Q]X1L_$$>LGP_KNK"S:QU
MQ])O?LEZD8AG>6/#,CH9402*25^Z:Y'_ (*M_M*^+_@7XK^$>C^&O'OB;X>V
M'BZ\U1-3U'P]X";QGJ,@M[9)(HTLDAF<(69MTBIQ@9(S0!\Z?M._\$>?B'J.
MII=^!=!T/_A&M)\8>)KS3O"&FWND65O'9ZJNGM'=1IJ.FWUG&5>VN T:P(X$
MY*.,L#]0?$C]A'7/&?\ P32\ _!*^G;7+S17\,VVLR2ZU-&\]M97]I-=;+R-
M89=PBA<(Z+$QVKC83QY_\4_^"M.E?\$]_@9\/9_B/=^-_BE-XFT^;6[KQ'=Z
M/IWA.]CLOM&WYM+N)+>9IHU=08(83)A0S %AGT#Q)_P5-.F>*=;T_2_@]\1?
M$$%CXR/@'2;NSGTY$\1:P+>:X:*W62Y5DB6.'+S3".-=QY.QL 'E'B?_ ()5
M>(?@;9_&+1?A1H^E:]I/C1=#\4:%?>)]?NKG5+2_TK4[>[.@2W=P9IC82B$R
M029/D22S[E<%37GW[3/_  33^,G[0?@[5/$>J?#CPL_C;6/'6K:_:6.G>+[5
MDT2TOM,TVV E&H:;<V=Z,V164- DBE5,+@,U?5O[,G_!32Q_:2^)?A;0#\,_
MB'X/M/&6G:C<:3JNMQV:VUS>Z;*D.HV.V*=Y5>"1BHD9!%+L<QNP )\SN?\
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
MLDJK))"DBPR/DO&VY]WTW10!\8_%?_@CEX6O8/&FM^%_$_CMM<OK/Q1<>'=
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 <5^T;\?- _9:^!'BSXB^*3>#P]X-TR;5=0^R0>=.8HUW$(F1
MECT&2!SR0,FOE^?_ (+4Z+X?_8YT;XS:[\&OC)INA7][/!?01V%G.-+MHMF+
MUKG[0MO-#)YD:Q"&1Y)I"8T1G4BOJ?X^?#?4/C#\%O$_A;2O$-SX3U+7M.FL
MK;6(+."\?3W=2!)Y$ZM%*H[QN"K*2#US7Y[_  G_ ."'/Q.\&_L(:A\*8OC%
MX=\/OXVU#5)O%>C0^$([[PT+>]@BMQ]@M7F5[6YA, NHI4D"+<2N3&0%P ?4
M?B?_ (*:^$] _:X_X5'!X=\1:A?V.@V_B36M6%UIUK:Z'9S13S*\MO<74=[*
M5C@9G$%O+LWINQFM#]A7_@HYX2_;V&NIH'A_QAX6O=&L=-UJ*S\1VD-O/J6D
MZE%)+I^I0B*60>3.D4A 8K(I0AT4XKQ7XN?\$58OC!^TCX=\1ZGXYLY_!VD-
MI5W/!)X;@_X2F:XT_2Y=.2-=95EE^S3))YDT<B2%G7"LJL17H'_!-G_@F_JO
M[#NHZ[J?B7QS:^.]8N_#V@^"M+N+;1O[+CLM#T6&:&QCD3S9?,N6$[M+("JL
M0NU% Y /JVBN'\6>'+'3OBUX5U.&W$5_?7<\-Q,K,#,@LYB%89P1E5/3J!7<
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110!RGCG_D??!77_C_N.G_7
MG/75URGCG_D??!7'_+_<=^G^ASUU= !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% $5
M[>PZ;9RW%Q+'!;P(9)99&"I&H&2S$\  <DFN*TC]I_X;:]X!TOQ59?$'P3=>
M&-;NA8Z=J\>N6S6-_<%BHABFW['DW*PV*2V01CBN9_;_ /AE)\9_V*?B?X5A
M\-ZKXODU[P]=6:Z+I>J1Z7>ZEN0_NH;B17CCD/\ "9%*$X##:37Y&>"_V;_'
M'Q&_X)!W/A/5OV7]7U^ZU[5-:M_!>N:/X7TK3O$.FS26MNL%SJ6GL2D2W4\4
MMG/=P&)U@B60!"RO0!^W5U\1?#]CXXMO#$VNZ-#XDO;9KRWTE[V-;Z>!20TJ
M0EM[("""P&!CK2>"_B/X>^)-K>3^'=>T;7X=/NGL;J33KV.Z6VN$QOA<HQ"R
M+D94X(SR*_*3XU?L.?&/QK^WTEU;_#J\L/%6N:WX8\1V'CZR6.32O#6FV/A2
MZT[4=,6\9S/'NOY,+!@B59A(2<$UZY_P0?\ V8_%_P #M6\7:AK'PUUCX4:.
MG@?P9X1N-+U"TAM6UG7]*L[J+5=318F821R/-$!<GYI]I8YVT ?=WCG_ )'W
MP5T_X_[CK_UYS]*ZNN&\8VFHI\6O"4TE];/IS7DXBM1:8D1OL4V6,N_D=>-@
MZ]>.>YH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBO.OVA?VM_AC^R?X?34_B1XZ\,^#;:;_CW74KY(I[P_W88<^9,W^S
M&K'VH ]%HK\]M=_;;N?VIOVA]?'@'X/_ +2GC[2K30-*_LT6]_=^ -,C=[C4
M?-N6-U=6;NLJK"%?RG8^0P  7G3_ &??B[^U/I7B[XBZ+H'P5\-I9:7K5MLM
M?&/Q@N=4GTS?IUHYA27[+.Y5BWF\OM#2,!TS0!][45\KK^T#^UKX>?\ XF/[
M.7P\UZ-N2=$^*(BD0>FVYL$5C_P,"G2_\%(_$?@!MGQ$_9M^/7A,+S)>:3I5
MIXJL8U[N7TVXFE"CWB#>U 'U-17AWP1_X*4_ G]H?7QHWA?XG>&)?$.[8="U
M&9M*UA7QDJ;*Z$5P&'<>7D=Z]QH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH Y3QR?^*]\%=/
M^/\ N.O_ %YS]*ZNN4\<G'CWP5_U_P!QV_Z<YZZN@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ KSO]I7]J[P!^R)X%3Q!X_\16NB
M6ES,+6QMPCW%]JUP?NV]I;1AIKF9N,1Q(S>V.:\?^-7[=OB'X@_$C4_A=^SG
MH.G>/_'FF2_9=?\ $M_(R^$? ;GJ+V=/FN;L Y%E;DR9_P!8T(YKH_V:/^"?
M.@?!CQVWQ#\8ZUJ?Q8^,EY"8KKQIXA1#-9QM]ZVTZV7]SI]KG.(H "0?G>0\
MT <5%J/[1/[<<9DL/MW[,7PVN 1'-=6MO?\ CW6(S_$(GWVNE KT#BXG!ZK$
M>*](_9Z_X)W_  E_9LU^3Q!HWAA-9\;W9WWOC#Q'.^L^(K]^[27UP7E&?[B%
M4'917MU% '#?$G]FCX?_ !B\01ZMXH\'Z!KNIQ6ZVB7=W:+),(59W6/=UVAI
M'('0%VQU-:GPP^#?A3X*Z3=6/A+P]I/AZTOKC[7<Q6%LL(N)MBIYCX^\VQ$7
M)[*!VKI:* "BBB@#@_CI^R]\./VG?#YTOXA^!?"GC2QV[5CUC3(;LP\Y!C9U
M+1L#R&4@@\@UX2O_  35\0_ ;_2/V?\ XT>.OAU'%S'X8\1SOXO\+,!R(UM[
MN3[3;KT'^C7,>!VKZRHH ^3Y?VZ/BC^S/^Z^/WP?U"'18N)/''PX\[Q'HBKQ
MF2YL@@U"S49Y/E3(.IDZX^@?@E\?_!'[27@>#Q+X!\5Z!XPT*XX6]TF]2YC5
MNZ-M)*..A1L,""" :Z^OGGXV_P#!,[X<_%'QQ/XV\-G6OA-\3)AD^+_ UT-)
MU"Z/87<84V]\G3*W44G  &." #Z&HKY);XR?M(_L?-L^(?A"V_: \$PM@^*/
M -D+'Q-:1_W[O17<QW&.[64NXXXM^U>U?LV_MB?#3]KG0;B^^'WB[2]?:P;R
M]0L59H-1TJ3O'=6D@6>W?_9E130!Z91110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%>._P#!07Q7J7@?]B/XI:OH_C ?#_5-
M/\.7<UMXD:QFO5T1Q&<7#10QR2%5ZDI&Y49;:=N*_'OPO^VM-=_\$P?#EE%^
MT)\6/#?CY/%FK>&/#<#>/K.6V\3:U+:6TUM=_P!OR*C'1+$3^?,LY/S2-"^X
MB*.@#]YJ*_([X^_MA?$+X:_\%'-$MG\??\)_=6^D^'_#^E>&/#'C2\T^:\U*
MXT:\O9-;.BI"+;4=.DE"[W\TB-4CQR"M>H_\$$/VC/%7QJU/QC9W_P 2O$'Q
M5T$>"?!GB.^U/5M374&T?Q-J-G=2:QIL;A1Y2QO'"?LO_+ONVX7=B@#[U\<_
M\C[X*Z_\?]QT_P"O.>NKKAO&&M27'Q:\)61T[4(TAO)W%XP3[/)FRF^52&W9
MY[J.AYKN: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHKS?]J'
M]J_P5^R#\.QXB\9ZA+$+N=;+2M+LH&N]5\07K_ZNSL;5/WEQ<.>B(/4DJH+
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
MG]:^N/#WAZP\):%9Z7I5C9Z9IFGPK;VMI:0K#!;1*,*B(H"JH      %7**
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BL'QO\ %/PQ
M\,M/:[\2>(]"\/VJ<M-J6H16D:]^6D8"O#_%_P#P5W_9H\&ZE]BD^,_@K5[\
M_=L] NCKES)_NQ62RNW7L#0!]'45^=_[97_!7VX\+?#S5/$GPO\ !'Q^U^WN
M+)K"-C\/[G3;+SN62YMI;^.%O-09+(497C&<(4R?MSX'WVH^)/"1\0:EK,&J
M/X@?[7#!:[3::9%C"V\9P&8K@[W;DONX4 * #M**** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH Y?XU?"/2OCW\)O$'@W7'U*'2?$EE)8W,NG
M7LEE=PJP^_%-&0\<BG!5E.00*^,?"O\ P0*\&Z-\)?".@S?%;XN0ZYX9\4R^
M-;G7;"^L1/K>L&*.WM[NYBN+6:%WMX(42+"#:2[G+MN'WM10!\Q>(_\ @D_\
M-O&O[1MA\2]<U3QIK.HQ&RN]3TJYU&/^R?$.I6FGRZ=;ZI=P+$I:Z2UFD3,;
M)&<@F,E5(Z']B#_@G5X)_8+BUP^%]5\7Z_=:U:Z?I0N_$>HK>SV&F:?&\5AI
ML!6- MM;I)($#!G.\EW<X(]\HH Y/QPBK\0/!9PH9K^X!..3_H<]=97*>.3_
M ,5[X*_Z_P"X[=?]#GKJZ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BF3SI;0O)(RQQQJ69F. H'))/I7SO\3_^"KOP(^&OBF3P];^-
MX_&_BN,E3X?\$6-QXIU16_NO!8)*T9_ZZ;: /HNBOE:+]M[XW?$TEOA]^ROX
MRBL7XBO_ (@^)-/\+(3ZFWC-W=!?3,(/J >*<EO^VGXKD.^Y_9I\%V\HRJI!
MK.O7%O[$EK5'(^@H ^DI_'6BVMS+#)J^FQS07<5A+&UR@:.XE"F*$C.0[AEV
MKU.X8ZU:TC7K+7XIGL;NVO$MYWMI6@E$@CE0[70D=&4Y!'4$$&ORU_;A\'_M
M$:C\0=&M6_:(^!^D^(-(UG25U*:+P4^CL[&='@A=Y-4DDEBCW>:T@13$&.R0
M,S >^_ GQ-^U7:?"[3+SPA'^S/XV\.V(>U&F0)JGAN97C8K)$DZ/?09#ALN
MZMR0QSD@'VQ17R=J/_!27Q=\#X)I?C7^SW\3/ VF6R^9/X@\-M!XQT2",?>D
MD>S(NXD![O:C Y.T5JV7_!9[]E;5O"EIK&G_ !U^'VK0WR;X;33=0^VZDPZ<
MV40:Y4^H,8(]* /IRBOEC_AZ+%XY&SX:_ [X_?$4R\6]XGA,^'],E/\ "?M.
MJO:@H?[Z*XIK_$C]L+XKD?V+\,_@[\)+-^#-XL\37/B/4%![_9K".*$,.N/M
M3 ^M 'U36#\1/BIX8^$/A^35O%GB/0?"^E0@M)>ZOJ$5E;H!U)DE95'YU\Y2
M?L)?&/XHM_Q<G]J;X@26K\OIO@#1;#PE; ]U$VVYO-IZ?\? /H16[\.O^"2W
M[/OP]\1)KDWPZT_QCXD0ASK?C.YG\4:D7'1Q-J#S,K>ZXH Q=4_X*_?"OQ'>
M36'PML?'/QWU>)MC0?#[0)M3LXV[>9J#^78H,XY,_3G! J!_&7[7WQ].S1_"
M'PP_9_T:8;3>>)=1?Q=KZ*<_,MI9F*SC?'9KJ4 ]FZ5]4:;IEMHUA%:V=O!:
M6L"A(H88PD<:CH%4< ?2IZ /E&R_X)*>$OB1>PZE\<_&?CW]H/4XV\W[+XKU
M$0>'H9.I,6CV@BLPOM*DIQU8X&/ICP3X$T/X:>&K;1O#FC:5H&CV:[;>QTVT
MCM;: >BQQ@*OX"M:B@ HHHH **** "BBB@ HHHH **** "BBLWQ=XRTCX?\
MAVYU?7M5TW1-)LD\RXO;^Y2VM[=?5Y'(51[DT :5%?G1^V[_ ,%DO!>E^&=4
MN?@7XD\7_%K7[BW%B=.\&Z-<:AINY)58W$.IB+[)$Z*S!_WC*ZL!@,%->@_"
M7XS_ +7?QM\,MJWAWX<_#CP5;Z],;O[?XX\6/JC6:?<$$&GZ;%M0(%P?-NA(
M7#[PI^50#[6J#4-2M](LWN+J>&VMXAEY97"(@]23P*^7&_8D^.'Q.Y^(7[4_
MC&UMY.7T_P"'GAS3_#,">RSS+=W6/?S1[8J>P_X(X_ >^U".^\8:!XA^*FIQ
MG)N_'WB;4?$>\^\5U,\ '^R(POM0!U?Q2_X*A?L[?!B\DM?$/QI^'-K?Q':]
MC;ZW#>7J'T,$#/*/^^:Y"3_@K1X-\2?\B-\-OC[\2H\@+<:%\.]0@M7ST*SW
MRVT3+_M*Q%>[_##]GOP#\$;1+?P9X(\(>$H(UV)'HVCV]@JCT B1:["@#Y:'
M[7W[1'C09\+_ +*>J:;#(<1W/C3Q[I>D@#LQBM/MLH_W2JGZ=:8+/]M/QMD/
M??LV?#V"3E6CM=8\37,0]""]E&3[@D5]444 ?+(_8P^/7C)_^*L_:Q\6VUO)
M@O;^#O!NCZ+L/<)+<17<F/J32O\ \$F/!?B<$>-OB-\?OB)$_P#K+?7/B/J4
M5K+]8+-[>$?\!05]+>(_%.F>#],-[JVHV.EV:L$,]Y<)!$"> -S$#)KR;Q9_
MP4$^%/AV]\;V%AXD;QAKWPZ5#X@T/PG8SZ]JNGN\PA$36UHDC^;YA ,8&Y1D
ML !F@#GO O\ P24_9I^'E\EW9?!/X?WE^GW;W5],75[O_O\ 7?FR'_OJO<?!
MOP]T#X<Z9]B\/:'I&A6?'[C3K..UBX_V4 %>76/[2?CKQGXRT"T\-_!CQ9_P
MCVN:"=6D\0>(+ZUT>+2KAX97ALI[1G>\$ID2-'Q"1'YN3G!%9FE^$/VCOB-X
M4\-3:YXQ^''PSU:VU:6YUNR\/:/-XA2^L,Q&&VCN;IX/*DXE$DGD,"'78$*Y
M(!U?[36F> _#O@+7O%'CC3KS4K'^S?[)FCMHYKFYE@ED ,%O#'\Q>1RN?+&Y
MMJY.%&.S\"^']#L8;K5]!6(6OB9UU21[>0FWN7=!^_1<[07&TDJ!N/S')))^
M2_VB/V O$OCWXJSOK-UX\^,W@35+M]<DT36/'@T6VTF_$K?9H;:.UMXV6WBA
M>1<&1C(77?G8*]\_9"\)>*?A_P##:\T/Q%H=EX>L-,U*5/#UC;ZI_:#6NFL%
M>.%W"(!Y3M)&@&<11Q9.<T >K4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 45A?$[XFZ!\&/A[K/BOQ5JMIH?ASP]:27VHZA=/MAM(4&6=
MC[#TY/0<UXKX)_X*K_ ;QO\ LW0?%=/'MKI?@R?6%\/++JMG<6-X-1:1$6T^
MR21B<S'S$8*$)V,'^[D@ ^AZ*\I\6?ML_#;P5^T-;?"N_P!;O_\ A-Y[6*]>
MSMM#O[JWL8)1*8Y+F[BA:VM@P@E(\^5,A#[4?LM_MO\ PL_;4T[6;KX8^+[3
MQ3#X?FCAOO+MI[9HO-4O#*JS(C/#*H+1S(&CD"DHS8- '5^.?^1]\%=?^/\
MN.G_ %YSUU=<IXY&?'O@K_K_ +CO_P!.<]=70 4444 %%%% !1110 4444 %
M%%% !17QC\6O^"G]O\+?$.OIK7Q ^ _@Z#3M=O=%LM+UK5;J?6[O[/,T._[+
M #(Q<H2JHAX(&2:C^"W_  5QU;XZ_#+2M0\'_ #XS^/-6NXW$MSI>B+I&@NZ
M2/&6BO-5DM=T9V!N%9@&P1D8H ^TJ*^5XOB]^V!\0O\ D$_!CX/?#V+_ )Z>
M*O'MQJDP'KY-A9["?]GS@/\ :I6^!7[6WCIQ+K/Q_P#AKX*&>;;PG\.#=<>G
MFW][+R/79SZ#I0!]3T5^;?QQ\1V7@/QO)X,U/]K3]I3XO?$=5 ?P1\+[#1EU
M*$GO/]CL0+)/]JZN(U YS6!X=_X)!_&7]J6_M+OQ[\5OC)\'O"2.KG1[?XIZ
MCXD\4WZ @[9[S='96F>Z013G@#S.M 'WK^TA^V7\,?V2-(M[GX@^,=*T":^8
M)8Z>6:XU+4W/ 2VM(@T\[$CI&C5\_>*_V[?B_P#&$[? G@OPM\%_#-P@*>+?
MC'J*6-Y(A_CM]#AD%P3R"/M4UOU&4/2M+PO_ ,$'_P!E;P_JB:I>_"Z+Q5X@
M,:I/K?B76M0UC4KLJ -TDUQ.Y/0<#"^@ XKN_#'_  2@_9F\'8^P? 7X3ICI
MYOAFTG_]&(U 'S=XH^'G[-GB8B^_:2_:TT;XRW'WY-)UCQS8Z+X9C;@_)I%E
M+'$RCL+@SGIDD\UZC\._^"FW[&7P#\+1Z)X \;_#O3]'@7]W8>!](DO(,#^[
M'I\#@GGL.]?0?@[]E#X6_#QPV@?#7P!H;*<@Z?X>M+8@_P# (Q7<VEA!8)M@
MABA7TC0*/TH ^8A_P5E\$Z\,^%/AW^T!XXC;[DVC_#'5U@D]/WMS##&/^!,*
M)?VX?C+XR<#P9^RA\2&C. ;CQAXBT;P]&N>AVI<7,I'3/R9]J^HZ* /S-U'X
MI_&6/XW?$J#Q?%^RS\*]6U+6[:XG_MZWU+Q7?)&=)T]$,#B*SC= $ Y) D$J
M\[=Q[']C7]B_Q[\9OA;K5WJ?[2_Q%LO#%WXHU=[6T\!Z'IWA.SNA]LD!N(G,
M$URJ2-N;"S;>>,]:_0&B@#YAT[_@CW\"+F^BO?%7A[7_ (F:G$_F?;/'/B?4
MO$+%NY$=S.\*Y[A(U'M6W\1/^"6'P#\?PZ=+;?#;P_X,UO1,G2-?\'0#PWK.
MD.1C=!=V7E2K_NDE3R"I!(/T'10!\D7.A_M._L;8ETC4+;]I_P !6Y^?3M4:
MWT3QQ80C/^JNE"6.H%1_#,EO(W_/1FZ^I?LR?MZ_#;]JS5+_ $30-5N](\:Z
M*N=7\'>(;1])\1:/_P!=K*;$FSTE3?$W\+FO9:\G_:@_8D^&W[7]A8?\)IX?
M676M$8RZ+XATZ=]/UW0)?^>EG?0E9X6SU"MM;HRL.* /6**^0#JO[27["C@7
MMM=_M0?"VW./M5FD%E\0=%A'=X?DM=6"@=8_(G;^Y*:]R_9E_;%^''[7_AFY
MU+P#XFM-8?3I/(U/3I$>UU31IN\-W:2A9[>0<_+(BYQQD<T >FT444 %%%%
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
M.R\1ZW;W&MW2:5:PK,'L;:V27RY99IC%-).TBXV"&-2 [;OH3]E^7X\?&_\
M9\U^[L?BS\,[!+ZZ-OX8U&S\.3ZY<:#Y%U)'=6MXSWJQWKIL,*RJR9V[SOSS
MQ'[</A_6]7^+;_\ "2Z'^S]J\RV5M_9Q^*%S<6>AB'R +EK%EAE#W?VGS-PD
MQ(L0M]O5J[G_ ()X)^T=%I&EKXXL?@_IWPU$M]_9\.DOJKZRMIYC_8]K7*(K
M18VX:51(8MA8;B30!Z;;?LU^.]6\::;JFO\ QO\ &EU86^@'2;S1=*TW3]+L
M;V\>!HI=0#K"]S'(6;S$03[(V5< @'.79?\ !-GX8WOA/PMI?BI/%WQ$?P=J
M<FLZ;?>+/$]_J=VMV[1L979I0KX:)"JLI1"#M5<G,'Q:^$W[2?CGX@ZHWACX
MR?#OP)X3,@_LV*+P#)JNII'@9$TLU\L3-G/*QJ,8XKK/ ?P!\6Q_ O7O"7CK
MXK^*?%^KZ_YR-XBT^TMO#U]IL<B!0MI]E4>44P65R6<%C\W0  ZSPO\ #/P/
M\$4UG4M%\/\ A3PBNKW+WVK75E8V]@+V=V+--.Z*N]V9F)9R22Q.<FN3_:6_
M;>^&/[(ITF+QYXE_LR^U\2'2]/M-/NM2O]1V;0WE6]M')*P!=02%P-PR:\XT
M7_@CK^S[%J4&H>(O!M]\1M6@<2B^\<Z_J'B64N.=X6\FDC4Y_N(H]J^FHK6.
M$)LC1?+78FU0-B^@]!P/RH \9_9S_;)F_:4\9W-G8?"CXO>%O#]O9FYC\0^+
M-!71+2\?<JB&*":47A8ABV6@5<*?FZ5Q_BWX:_M6_%CQ?J<(^)GPM^$OA-;J
M5;!O#WAN;Q!KD]OO(C:2:]>.VBD*88XMY%4DCYAS7TU10!Y+J/['^A?$C]FV
MW^&?Q.U77OBKII82:A>ZY<"VNM6<2F4>=]C$"; 2 (PH7:H!!K<^"?[*_P -
M/V;=-^R?#_P!X.\&0XPW]C:1!9M+QC+LBAG8]RQ)/<UWU% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 >.?\%"?!TWQ"_8?^*FB06GC2^EU3PW>6XM_")C_MR7
M=&01:+(R(\N,X0LN_E<_-7Y0? ;X"^(/BG_P0LU*'2/!WBWPY:^%OB)I]]H%
MEX9L;_2;;QY$VI:8LM[<:4Y>5%B/VA6B0K;F2W:;:<9K]PJCM;2*QMUBACCA
MB3[J(H55^@% 'Y+?M>_ SXD^(_\ @KKK.I>&O"_C/_A8-WXIT.^\'>+8K"Y.
MEZ;X4B\-7L&I6IO1_H\*-J+C=;NP:262)PK !AW_ /P;Z?";6_AQ?>-Y(_!O
MB_P-X8;P=X.T[6+/Q!IEUI\FH>,[:TN5UZ[1+C!E9Y&MQ)<J"DS $.VTFOTN
MHH _G@_;LTO5OB=^U#\5+WP-XRTW3]1\$_$CQ'%XENO$?B2ZCATV(6UW,%@L
MTFC:1([= T:J<&?N -A]P_95_P""!OB3_@HS^R#X$\6?%W]K3XK^,/"FL>'K
M.]\(:/IT L;+2(F*2122PS/*L[^4,9=0^6!+L5Y_5?XD_L_^ M8^)/A6YO/
M_@Z[NKW4KF2XGGT6VDEF8VD[%F=D+$D\DYY->FZ'H5EX8TBWL--L[73["T01
MP6UM$L44*CHJJH  ]@* /B3X"_\ !O)^SC\!/B5X1\8VVD^(M=\2>$]-.GFY
MUC4S=1ZLQ5U:XN8F7:TFUU "[43RHRB*5S7NGAS_ ()J_ SP[X(TOP[)\.=$
MU_2-%U9]=L8?$;S:^UI?.BQM<(]Z\SARJ*.#T'%>Y44 9FB>"]'\-7][=:=I
M.FZ?=:E*9[R:VM4BDNY#U>1E +M[G)K3HHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH CN;.
M*]0+-%'*JL& =0P!'0\]ZDHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@#E/'/_(^^"NO_'_<=/\ KSGKJZY3QS_R
M/O@KK_Q_W'?_ *<YZZN@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KX0_P""W_[8
M'Q6_9/T#X;W'PY\2:?X3T6]U*:Y\5ZI%I%OK^K65I"]MM>/3'FCEN+3]Y)]H
M>W#2H!&!LWEQ]WUY%^US^PE\*_VZ- T'3OB?X2T_Q-#X9U*/4]-DF7;-;.K*
M9(PX^;RIE7RY8\[9$.#T! !\<6'_  4V^(5M^W)JK:GJNHO\([Z"YL/ \>F:
M!I\^C>+=1MO#2:M/')>?:6O[5R?-D17@";(U4ON-=]_P1_\ VUOBA^TGKWB#
M0_B=K&B>);F?P+X0^(^G7VEZ0-.338M?M;F9M,90[B06[6_R2DAW5R6Y%?1>
M@?L&_!WPM^T%<?%/3OAWX:LO'MU9_89-5AMMK&/R5@)$8/E*YA1(C($#F-0A
M8KQ5[]FG]C7X7_L=Z9K5G\,O!>C>#K?Q#>"^U!+%&_TB0#:@RQ)6-%R$C7"(
M"0JJ": -3QCK\5S\6O"-@+>_$MO>3NTKVDBVY!LIN%E(V,>>@.>OI7<URGCD
M9\>^"O\ K_N._P#TYSUU= !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M <IXY_Y'WP5T_P"/^XZ_]><_2NKKE/')QX]\%=/^/^X[?].<]=70 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 ?'^J?\%D_ VB_M-?%CP)<^$O&H\/?!;1[S
M4O%7C"*WAET_3I;6V-U- \*R?:%!A'[N5HPDDGR*>A/J7[$_[<>C?MJZ!XD>
MU\,>*_!'B#PA>V]EK&@>(X8([ZR^TVD-[:RY@EEB9)K:XBD4JY(R58!E(KYD
M_:#_ ."(^I_M/_MV^-_'_BSXCRR>"/%7A/4M"@@M-*@MM;M1?V4]C+827<>!
M<6,2R_:(UF1G$@1=VV,9^@?V OV)-8_9(A\<:QXN\9VWCOQQ\0KZQN-5U.ST
M?^R;1(;#3[?3K.&*W\V4C;!;JSL9#NDD<@*,"@#U[QP#_P )YX+]/M]QVZ_Z
M'/755SNO_"3PSXIU9K[4=$T^\O&QF:6(,_ VCGMQQ]*J?\*)\'_]"]IO_?N@
M#K:*Y/\ X45X0'_,O:;Z_P"KI/\ A1/@_P#Z%[3?3_5T =;17)?\**\'_P#0
MO:;_ -^Z7_A17@__ *%[3?\ OW0!UE%<E_PHGP?_ -"]IO\ WZI?^%%>#_\
MH7M-_P"_5 '645R?_"BO!_\ T+VF_P#?JD_X43X/Q_R+VF_]^J .MHKD_P#A
M17@__H7M-_[]4?\ "BO!_P#T+VF_]^J .@U'6X-*O;"WF+"34IVMX,*2"XC>
M4@GM\L;?E5RN1/P&\&L5)\.:62IRI,()4X(X]."1^)IW_"BO!_\ T+VF_P#?
MN@#K**Y/_A17@\?\R]IO_?ND_P"%$^#S_P R]IO_ '[H ZVBN2_X43X/_P"A
M>TW_ +]T?\*)\'_]"]IO_?N@#K:*Y+_A17@__H7M-_[]TO\ PHKP?G_D7M-_
M[]T =917)?\ "B?!^/\ D7M-_P"_='_"BO!__0O:;_W[H ZVBN3_ .%%>#_^
MA>TW_OU2?\*)\'X_Y%[3?^_5 '0:WK]OX>BMWN2X6YN8K6/:I;+R,%7/H,GK
M5VN1?X#>#9?O>&]*;!W#="#@^OUI?^%$^#_^A>TW_OW0!UM%<E_PHGP?_P!"
M]IO_ '[H_P"%$^#_ /H7M-_[]T =;17)_P#"BO"&?^1>TW_OW2?\*)\'X_Y%
M[3?^_= '6T5R7_"BO!__ $+VF_\ ?NE_X45X/_Z%[3?^_= '645R7_"B?!^/
M^1>TW_OW2_\ "BO!_P#T+VF_]^J .LHKD_\ A17@_P#Z%[3?^_5)_P *)\'X
M_P"1>TW_ +]4 =#K>NV_A^VBEN2P2:XBM5*J6^>5UC3\-S#FKE<D_P !_!LF
M-WAS2FP0PW0@X(Y!^N0*7_A17@__ *%[3?\ OW0!UE%<E_PHGP?C_D7M-_[]
MTO\ PHKP?_T+VF_]^Z .LHKD_P#A17@\?\R]IO\ W[I/^%$^#S_S+VF_]^Z
M.MHKDO\ A1/@_P#Z%[3?^_='_"B?!_\ T+VF_P#?N@#K:*Y+_A17@_\ Z%[3
M?^_=+_PHKP?G_D7M-_[]T =917)?\*)\'X_Y%[3?^_=+_P **\'_ /0O:;_W
M[H W_$7B"V\+:+/?W9=;>V 9RJEB 2!T'UJ[7(R? ;P;,A5_#>E.IZJT(8'\
M#3O^%%>#_P#H7M-_[]T =917)?\ "B?!^/\ D7M-_P"_='_"B?!__0O:;_W[
MH ZVBN2_X43X/_Z%[3?^_='_  HGP?\ ]"]IO_?N@#K:*Y/_ (45X0_Z%[3?
M^_=)_P *)\'X_P"1>TW_ +]T =;17)?\**\'_P#0O:;_ -^Z7_A17@__ *%[
M3?\ OW0!UE%<E_PHGP?_ -"]IO\ WZI?^%%>#_\ H7M-_P"_5 &_XBU^W\+:
M'=:C>%EM;.,RRE5+$*.O J[7)K\"O!ZL#_PCNEG:0PW0@C(Z<&NLH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "OS%_:2\/VWPE
M_:G_ &P-0^)/BOXU:YX U#X8:!J4[:+/*EY )-2U!?[*TKR$58PZK%$P7YR)
MG:20;BP_3JB@#\H/V ?"]]\9/V?_ (+>!O#GBC6;+2O$GCWQ#X^N(])-[/%\
M-[2VMB]GHD4U_&&E^SW-]9MEU,;2I+M#(M>%_''PKXAT#_@G3\-[/7[SQ7K5
MGX:^(WQ"O##XJ\.:SXC3Q;?V]W?1:78W[V<T$T;W1=O*E)V;\,%X /[IT4 <
MG\!;S4=1^!O@RXU?0O\ A%]6GT*QDO=&\PR?V3.;=#);;CRWEME,GD[:ZRBB
M@ HHHH **** "BBB@ K\^_VHO"=UX%_X*?\ B?Q!XG\;?%-? NK_  &\23WL
MFER2+'X6BCNK%#_9JPQ_+>%/,D5B))F?&WA0H_02B@#\=O\ @GXEK\7OV;I?
M#7@*\\1Z+X=^,7Q?TGR?!SR:C=3_  ]T:QM$O9OM,]TO_'U=C3?-N%C9H5EN
M]BEOFSRW[1'P]\?^%/V9_B3X?O/%GC2]\'VW[3=Y#XT\1>(K'4=7,VBG1(S%
M/=6]BT$TUE]N, V6Q2-6$8X52*_;*B@#Q?\ X)SZMKNN?L&_"&[\3>'M0\)Z
M]-X3T\WNCW]U<7-SI\GD*#'))<,T[,./]:S.,X8D@U[1110 4444 %%%% !1
M110 5\"_M3^$;[P9_P %4!XBU[QK\3D\$:M\%?%DE[_9LDBVWA6.&33E+V"P
MQ_+>%3+(KMYDK,%"\*%K[ZHH _&W]@!;'XK_ +-VO^&_A_>^*M*\-_&7XJZ!
MI]MX.NIM1NKSP+I%I"+FZN+N>Y4 7E]%ILLMPL3-"KW"*&+%L['Q*^#UQI7[
M'O[7F@>)M-\7?%CQ%#\9X+#P==>)WNIY7U*_L=+LK>]_<>4/L\#W<K[(PL*K
M$5P,9K]>J* .(_9L^ ^D_LO_  #\(_#W0Y[^ZTKPAI<.FP7%]<-<7-SL7#2R
M.Q)9W;<Q[98X &!7;T44 %%%% !1110 4444 %?&'[9W@G7;'_@J/^R[XF3Q
M+XSD\/S3>(K.[TB!RNBZ8D>B7+_:I%1/FF9F #S,P&T!%!)S]GT4 ?BC^QYX
MHT3QQ\.OVBQ\']:\?6%A\0H]$^'ND>'M=EU6ZUW49;O49;.Z\5ZD]R@2&YN4
MNI&"PD;8;5&<*S +UW[6'PL\4_"C3?VV-!BUGXE>*-.:[^'30WEXUV]M:6#3
M,UW$RV:+)_94,&4N([1?.\D/EB[%J_8"B@#Y*_X(A-J@_P""<WA&/5$UH&#4
MM7CLI+\7(BGLAJ5S]E>R6Z_TE;#R?+%NMQ^]$(CW9/-?6M%% !1110 4444
M%%%% !7QE^W'X'UZ#_@I5^RAXFM_$?C*70VU[5[&[T2WD*Z+9JNAW\ANYD1,
MM*6V*K3.57 "J&8D_9M% 'XI_LG>,-&\3Z!^TU<_![6_B!;0>,M.T[X?Z/H&
MOS:K=Z[KMY>:G)9S^++]IT$<,TGVT^6L)!$%N'D"$A5[W]HGX%>)_AGJ?[:F
M@6WC#QYJ&D6&@^ ;^"XU4W\EM-I\5U</=Z3$;"$RPV;VT?V>5K>-WC21Y)-_
MS$_K?10!\?\ _!#1?& _8#T]_%EI=Z?:S>(];E\+V<]Q=7'V306U"8Z?%%)=
M*MR]NL.T0M,JN81$2JYP/L"BB@ HHHH **** "BBB@ KXX_X*N> O$&J^/?V
M;O$.E>(?&,5EI7Q>\.VMWH6EL5T^\26X8O<7@1/,=8U0 !G$2[B64G!'V/10
M!^/7PT^-OA;P=^WG^TCXT^&.L>/8-3\$>%O$MK-9:RVJ7NI_$S79+F.2.Y6.
M2,6L5A82E+2T\O#NLC\>6@+>-^+_ (>/\/?BM\5_ _P5\5?%"V^*7PV^&&N:
M)J-W<WFJW.I_$76GTZ)7M--4I]GCL=/%O,\3[A*UQ(%BW %V_>FB@#XD_P""
M(D-K#\-OBX?"$7B"'X,-X\D/PX35UO%<:=_9UB+GR1>?OQ#]O%YC=_'YN.,5
M]MT44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5RGQJ^+^G?
MCX<7_B?5;#Q)J=CIYC$EMH.B76LW\F]U0>7:VR23/@L"=JG !)P 375T4 ?+
M7_#W#X?_ /1/_P!I#_PR_B?_ .0J\Y\4?\%?9O$_Q7U+1_"7A+XKZ7I>DZ99
M7,C:G\!_%NIWDTT\ETK9CA2$PQA88]K.IWEI,'Y#7W77 ?$?]E_P1\6/%O\
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ KD_C=\6HO@?\-;_P 2S:!XL\3QZ>8P=-\-:5)J
MFI7&]U3]W;Q_,^-V3CHH)[5UE% 'B^E_MJ6>J>-O#.B#X;?&>!O$^BC6EO9_
M!ETEEI@\J63[-=R](+K]T5\IN=SQC^(5Y7\9/^"IM[X9^%N@ZSX4^"OQKU77
MM6UIK:7P[?>"KR#5(-.M_(>[O3;CYQ%MG2*.0_(97P>$:OKRN#^(/[-GA/XF
M^-X_$>IQ:]#K4=BNFBZTSQ%J.ELUNLC2"-A:SQJPWNQR03R.>!0!P4/[?NC:
MA;^+KG3_ (=_&?5K#PK:17L-[8^"[J:V\212R1HC:8XXN\B0/\O\ 9NBFM/P
M_P#MGVGB'QSX)T)?AO\ &6T?QO8+?I?7?@ZYAL=%#&4>3?S'Y;:8>4<HW(WQ
M_P!X5Z1\,_AKHWP?\#:?X;\/6LEEHVEHT=M!)<RW+1AF+G,DK,[?,Q^\QZ^E
M;U 'X7?\%<?VK_B=X$_X*!?M!6.C^/\ ]JC0[?PK;^&;+P<? NHV5OX*T/5+
M_3U\H:Y)=X6&&:Z\L[@0"#+D]*^R_CS_ ,%/_BE^S-'\<-#UG2_!5[KWP8^!
M6D?$'SY(YMFHZW,;J*XC?9(H:V\VW&T1A&^8_-R /KGQ-^QK\,?&5S\3I=5\
M':9?O\9;*WT[QIYQD8:];V]NUO"D@W879$[*"FT\YSD UP/Q?_X)+_L\?'VW
MT./QC\--.U__ (1[P\GA2S>YO[SS3I<?,=K,XF#3HA^9#,7*-\RD-S0!\O6W
M_!7_ .-7AW]K-O"GBWP#X6\,:#K,MQ9>#;+4=,U.W/CB8::;BS^Q:ZK2:;YU
MQ<*T?V29(FB0',I8;6X[PY_P7E^*7@7]F_XHZO\ $+P;X;M_BKX4L]"DT_P.
M?#6MZ#J>GSZG?QZ>3<0W1D6]M(IY4"W-I,/.*E=D>]&/V_!_P2V_9_A^*\GC
M3_A5_AZ779O,9Q,9IK%I)(#;R3_8F<VOGO"2C3>5YC!FRQR<Q>!/^"5?[/GP
MX\">+_#6F?##0VT7QW8QZ7K=O?37&H?:[.,EHK57N)'>*"-B62*(JB-AE"D
MT ?G1\?O^"D/[0_C76;"#Q+I_C/X2:GHW@;XG3)):Z7>>';7Q6+3P]#=:?J2
M6-T\D\$MM,S@*\CX<!U;#8'W1XS\4W/B;_@D/X2\2>)OC/J_PCA?P3H6L^)?
M'</ER:A%;_9[:6[V22 [)[@%HQ(H9PTN4!?;76:%_P $H_V>_#?AVWTNT^&>
MDK;6UKK%EODN[J6XGCU:W6UU#SIWE,LS30(D9>1F954!2N*Z[XU_L-_"K]HG
M]G+3_A)XR\(6NM_#G2HK.&UT1[JXAAC2T4+;KNCD5R$"K@%C]T$Y(H _*?P#
M\8/CU\4+W3_!>M?%'XS^ ?AYJGA?QS\3O &HZC?I:>,;W3+#[#'I2ZG.\9=X
MPTUS<>2_S/%)")"P45/JW[?OQI^+WPC\4_&NX\=>+?#OB#X->"_A5KNF^%]*
MFCM=%\17/B#R9-2-_:[";A9_,:*(9 BVY3#9K]%-3_X) _LZ:]\-;7PCJ?PY
MBUC0K'4IM5MX]2UK4;V>&::%(9E6XEN&F$,L4:+)!O\ *<*-R&NO\?\ _!//
MX*_%#XL^%?'&N?#KP]>>)O!,-M;Z/=!'ACMHK9B]JC0HRQ2K Y+1"5'$3<IM
M/- 'PE_P3\_:A^)_BG]I+]G7Q?K?C[Q?K\7[2E[\0;;Q-X8U&Z271_#RZ-<2
M?8!86X0&U,2Q"&3YB9#*2^6P:_5.O(?A9^P7\'_@E\==?^)?A7P'HVC>-_$W
MGF_U.'S"Q,\@EN#%&S&. S2*'E,2IYK %]Q&:]>H **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N3^-WQ2E^#'PUO_$4
M'A7Q9XUEL3&%T?PU:1W6I76]U3]W'))&AV[MQRXPJGKTKK** /F'PS_P4FU7
MQ'XDT_3W_9G_ &G=,2_N8[=KR]\-:<EM:!V"^9*RW[,$7.6(4D ' /2H_P!M
MK]N'QO\  7XO:-X)\"_"[QOXUOKW1WUR[U'2= 35K>",3>2L'EF]M2'+ EGW
M,$!3Y6+\?45<S\2O@UX5^,=G:P>*?#^EZ[%9.9(!>0"0PD\-M/4!@ &'1@,$
M&@#R;]B+]N>]_;&T6*>[^$'Q7^''_$M2]-YXFTVV@TZ\<L$:.VEBN)&DYR06
M105&:JZ!^W_J.N_%:V\+M^SY^T180W&IC33KEUX?L5TJ%3)L^TO(+TR"#^+=
MY9;;SM[5]"65E#IEE%;V\45O;VZ+'%%&@5(T P%4#@  8 %2T ?BO_P4W3XV
M_%W_ (*;?'/P[\,Y?VK-;U3POX;\.MX5MOAMXZBT3P]X?U&YM+EDDU2"=MDD
M<DT<;'8!E(I0QY!'K5__ ,%4?VF_!W[3][\/['X=)XZMO@Z_A?0/'AL-&0_V
MU>7NGVT^H7B7SWL*V91IV-O"+683^6PWIN 'Z4>'/@YX7\(_$SQ+XRTS0["R
M\4^,8K.#6]3B3$^II:+(ELLA[B-99 OIO-<=X^_87^#WQ2^/&D?$_P 1?#?P
MEK/C_0O*-CKEW8))=0F(DPL2>&:,L3&S LA/RD4 ?F#I_P#P78_::U?]E3QI
M\7H_AGI5KX2U'PG>>(?#6H7VA_9K#1+B&_A@AMVD_M!Y=2CDAD822+#;&&90
MNPJ<C[!_X**?''XS_LF_\$HO%7BJ]\8>'6^(OGV-I=^*=$T&2UL?#5G>ZC!;
MRWJ6TLL[-]DMYG?>[$$Q[RJC*CUD?\$MOV=EG\:R#X.> T?XBQM#XB9-,13J
M<;3"=XVQ]U'F59&5-H9U#,"1FO;=;\-:=XF\/76D:E86>HZ5?0-:W-G=0K-;
MW$++M:-T8%64J2""""#0!^+WB?\ ;-L?^"9WQ>^+&D_#OX_?M$?%SQ'I7PSU
M/Q%86WQ&>#Q+X/UZ]M[6*]%_9ZC'*CHB1MY;0PJ$+/@L,"OJ/QC^V+^TCI7C
MWPG\,+;Q9\&;'QSJ'PYU'XLZIXBU/PU>1:,UG#+!%%I%M!]M#[E:5FFNVD.V
M/:PAR<5]%?#W_@E+^S?\)O"WBW1?#7P6^'VB:;XZLWT_7HK32DC.I6K_ 'K=
MF'S"(_W%(7VKKOCY^Q!\(_VI?#V@:5\0_A[X8\7V'A8YTF+4;,2_8!M"%$/4
M(RJH9,[6"@,#B@#\\/ W_!>#XC_%/]E+XQ_$FVT7PKX=N/#'_"MY?#FEWMK+
M*R#Q!]D%XDI\U#,,RSF%U"?*%)#8-=3K/_!5'XY>&/BWX_\ $$]W\*[SX:^
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
MB7\)W\?>/+O6?V@Y=6\8>$M<;5+J6[T"ST2_U9=8@AN"Y:$>3I-J% 8#_2F
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
M]D?]F+PY^QA^S3X+^%OA%9_^$>\$:9'IMH\Y!FN-N2\TA4 %Y'9W;  W.>*
M/R?\3_LW']B'XY_MB>+?"?Q)^-&J:A^S)X%TKQ9X-L_$/CJ^U33WO+G3+^67
M[9;R-MN8]\49"-@#:?7CU/Q!_P %(?CO^SI%\7;7QS\0O!6O7FC?LX+\7- G
MC\,QZ7%:ZO-)-&ELJ&=S/"CI&H#$,QD'0G%?H]XC_9O\ >+YO&4FJ>#?#>H/
M\1+&+3/%#7&GQR'7[6*-XXX+K(_>QJDCJ%;( =AWK ^+?[#?P:^/C:*?&_PL
M\ ^+3X<L'TO2SJ^AV]V=/M'38T$6]#MC*\;1Q0!\??LU?M]?%S]H'X^RWE]\
M2?A#X%\(>#O%FA^"M2\*Z]IYBU#Q2][HUM?/=6USYX*7$TMR1;0",HR0MDL0
M<^7_ /!O1^V[\2?C?XCL_AGXOU6[TG0O"6@:KJ^DC6XY;_5/B0)/$%_#+J,5
M[*Q*6UDPCMO)&7+.I)"!5K]&9_V,/A'<_%;1/'4GPS\"R>,_#5K%9:5KCZ);
MF_T^&)=D213%-ZA%^5<'Y1P,5=\'?LK?#;X>7'A:70O OA71Y?! OE\/O9Z;
M%"VC+>N9+P0%0/+$[DM(%P'/)R: /S<T/]K;XM?"^W\9Z=X)\6V]MK/CK]LS
M4/AV+WQ%:RZU!I6ESVB.8X86F0J(R@9$5U4'(P QJOX$_P""FOQ^^-7C"'X2
MS^/?AQX)U_PK<?$!==\::AX=86?B>/P[?0VD,$5N;E%M7=)_.G99&*(@*#K7
MZ5C]E;X:BY6;_A!/"OFKXH/C8/\ V;%D:X5VG4\X_P"/K;QYOWL=ZQ?%G[!O
MP4\>Z,NG:Y\*/A]K%BNO7'B@6][H-M/&-4N#FXO<,A'G2GEWZMWS0!^1'[,G
M_!4[]I3PG^SG\(/"WPYTW_A*Y?!WPIT+QGK-QK\VGL?%$M_?W,3I>:AJ.HVS
MVUN%@\M9H4G?SG 90-H/UE^RO_P4:^*GQ:_X*^>*_P!GK6?&7@!_#'@274M8
M-];V&W4?$L306C1:(F"84NM-:Y8W,D;,SA8OD3+X^P-1_8 ^!VKV_@R*[^$7
MPYNH_AU&(?#"S>'[60:"@;>$MLH?+4/\P"X ;GK6SH?[(OPN\,WVA76G?#[P
MA8W?AC5KS7M)G@TN%)=/O[S<+NZC<+N668.PD<'+Y^;- 'HM%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% &)\2/'=K\+_ &L^([Z&[
MN+'0K.6^N([9 \ICC4L^T$@$A03R1TKYVT'_ (*H^&_&GCGX=:+H'@CQWJLG
MCRPCU2<+;01W6AVLCSQ1R2VQE\Z3]Y;3>8(E8Q*A+8.%/U&RAU((!!X(/>OE
M+]MO]@;Q+^U)^T+X \16'B'1;#1/#\ZS233:<!K'AN:/S&^U:;=1E7#3AQ%)
M'*6C&U7"GYE8 [?5/^"A/@JVU3X@V%GI_BC4;_X?:OIGAZ6!=/\ (_MG4=0D
M\JVM[,RL@D!E(1I3MB!W'>0K$<_JG_!4'PCI-GJA?PQXP>[\(0W=UXRM8XK9
MI/"$%K=?99I;@^=ME7<'D40&0O$C.!T!T?BS^Q#>_$+QUX]\26GB*UL]4U_4
M_#6NZ();)I(M/O-%D,L8G <&6*5OE8*48*QP<XKSC5/^"7WB&^7QS=1>,]$M
M]3^,]E?:;X];^RI&A:"ZNFE!L5\T%'C@DD@!E+!LJY *E2 ?3'Q'_:"\*?"/
M4;=/$FN:/HEE-I\VIM>7VH0V\<<,<MO"6VLP8J7N8EW %074$@LH.?X>_:X^
M&/BOP_J.J:?X[\,7-AI$44U_*M^@^Q)).]O&902"FZ:.2,!@#O0CK7"?M9_L
M22?M)Z[HMQ::Y;:+;:1HTFD""2R-QY@;4]*O0V=XP NFLF,'F4'/RX/"^+?^
M"6J^-OBG!K=YXO,6DWWBG5M9\0Z;;Z>%_MZPN9([JTLG<N=IMKV&*</@[OG7
M:-V0 >U_\-H_"@Z!JFIKX_\ #$ECHUVEE=RQWJOY<SEPB@#)?=Y<FTJ""(W(
M)"-C#TS_ (*&_"+4=7\76S^,=,LX/!MW965W>W$@6UNGN[-;V$V[@GSE\@EB
M5Z!')^4;J\2\#_\ !*S6/!/A2T@EUSPYX@U7PYIVDZ+H5[?RZTMS!;:>TWEW
M"W*W_G6DY$O"VI2)1YJ[2LQ"K<?\$N_&HUW3M<F^)W_"0>(M'D@NHKZ^%]8R
M:C.VC0Z5=-<265S%)R+:"5"C G,J2;@P8 'OOC?]MKX=^"_BCX0\&+KUGK'B
M3QIJ%O86=EIL\<[Q">VFN8YY/FP(S%"6&,L0Z,%*G=77?%GXZ^#O@3IEK>>,
M?$ND>'+:^E:&W>^N%B\YE4NVT'DA5!9CT5022!S7SG\)O^";>M_!37/"6E:+
MXLT%_ V@>)['QA<V\VCR?VC)>V^DKIK00R>>4CMV"1R+D,Z?-'EE((]1_:B_
M9MU_XN^,/#?B;PIKFBZ1KN@:7JVB;-7TUKZTEMM1C@65PJNC"6-K>)EYVL-Z
ML,-D '7:3^TS\/M>^)G_  AMEXQ\/7?BC)0:;%>H\Y<0K.4P#]_R767;][80
M^-O-9/CK]K?PI\/_ (_Z1\-[R/7)=?U;1K[7C+;Z;))9VEM:JA</-C!E;?\
M)%'O<A6) &"?,O@G_P $[#\$Y?"4-IXH^V6/A/QA%XFC$UEB:YBB\-)H:Q,P
M; ?Y/-W@8P=FWO7I_P 7/@;J?CKXT^"?&FE:O9:?=^"M-UFU@@N;1ITGFOHH
M$C=B'4A8VARR]6#8!7&: .4^'G[?.B^-[;5UO?"/C3PSJFG6FC:C;Z7JEO M
M[?VFK3206,BI'*_EN\D4@>&4I+'L.Y11!^W_ .'--TCQM=>(O#/C?PR_@C1X
M?$%S9W.F"YO;FQGDEB@*P6[22)-(\+8MY DH#(2H!..?_9U_8L\4^!+FRN?&
M^M>&M?U<ZS'XBUO6K2UN/[0\3:A';20Q23M*[+'%"75HH8QLB$:*H !)T? W
M['?B2W^(WC7Q5XD\3:'/K/BCPJ?"CRZ/I)L(]4PSE-1OH]Y$ET%8(-F J[P#
MA@% .SC_ &OO"_\ P@?ACQ'+!K46G^)_"S>+U5;,SW%C8B.!_P![%$7<R$W,
M2*D8<LVX#.":XC3?^"DWA3Q./A9'H^BZQ<7OQ9T(>(],L[^\L-+GM;0R01JL
MJW%PF9V:< 0Q;W^23CCGL_V<OV;)O@CI^DK?:I;ZO=:)X1TCPE9S1VIA\N&R
MA(D?EF/[V5MV.P1!DXS7E.J?\$]-?N?V;/#?PQC\3>&'TF#P>O@[6+^;P^#J
M*1YRUU93;]T4F,[4<LBL%<<KR ?0?Q,^,V@?"&73CXAU/3=(M+\74C7-[?0V
MT<$=O;27,TAWL"RK'&S-M!VJ"QPH)%3PS^TCX"\9> ]7\4:9XNT*[\/>'V==
M3OTNU$-@519#YI.-GR.C#/574C(()X+]LW]CV?\ :K\+Z3IMMKT>C#3-/UJQ
M+SVQN?.^WZ3<Z>&/S+]PW <_WMI'&<A9?V/!+H/QBLKFXT'68/BBEFJV>J:<
M\ME"+?2[:QV3(DJ/(K&WWY1T90PP<J#0!(O_  43^$,GCR'0E\8:=^]T"[\1
MOJ#.%L;>VM;E+65))3C9*)6QY9&[Y3W(!ZB3]KKX80Z?X?NG\=^&(X/%4[VV
ME.]\B_;)$E6%T )R"LK+&V[&UV53AB!7SO-_P32\<ZG<Z=J%_P#$FWU#4=/+
MSVL6I0W>IPZ:T.K6&J6-NDL\[3SVZRV.R3SW:3;,=C+L05L>%_\ @GGXL\)?
M$74O&-KXP\+R>(/&LEZOB>.Z\/?:K&&*YO8;H?8HG?AHQ#L_>[@[,)& *A2
M>Y?!G]J#PI\;Y5M=-NS::PSZB1I5VR+>^39:A-I\MP8U9L1-/"X5B>1V!! E
MU/\ :H^&^B^+-;T.\\;^&K75O#5I-?:K;2W\:-80PQK+,\F3A?+C97<9RBL"
M0 0:\V_9*_8<O?V3_BQXHU[3_$ZZCIOCN:^O]>L)[>1F:^?4KFYM9X)&D;RE
M2WNF@DC V,8HW4(2X;B/BI_P3*UCXF#Q/HS>,=)MO"FJ:KXD\1Z>O]D%K^+4
M-9L+FT=)Y/,"R6\1NYG 55=QY:$@)E@#Z D_::\&2^#- \26NOZ3<>'?$5S)
M;VFI->1P02".&>:1U,A7>%2WE;"9.U6;&U21D_\ #<'PC?P+=^)8_B%X7GT6
MRNDL9+F*]5QY[Q><B*!RQ:(&1< @H"P.T$UG?M-?LJW'[0'P[\)Z'!K<.EMX
M:FGE>9[4RBX$FD7VGX"AAMP;L/U/$9'?(\Q@_P""=?B+P9\2M$\;>&O%FA#Q
M%X:LM-L;&WU+2I)+"2.#29=-G\Q4E5LL)!(A4C9M9#N#D@ ]5^'?[=?PR^(/
MA?PO?GQ/IVCWGBS08/$=II>H7$:7L=I-;M<(7568!C$DCA0QRL;E<@$UZ!X"
M^*7ASXIV=S<>&]<TS7;>T>..:6QN%GCC:2&.= 64D9,4L;C_ &74]Z^1?AI_
MP2AUKX4Z[H<]EXSTS4HM.?1=6N!>V]\L1U32]/BM(GBM8[M;81.]O#)\Z/)&
M/,16(8%?7?V/OV:/$/[%_A/2/ &FWEGXE\'M?ZAJ4VHSP):7=@TX2=DVI\L@
M>\DN2G \N$QID^6"P!W7CO\ :C\#_"SQ#J.G^)_$>BZ$^GFUC_TJ^B\R:6X2
M>2.-8@QDWE+:5E!7Y@CE<[6Q#J7[77PWL;FQM8O&7A^^U#5M*_MK3;.UOHY)
MM2MC%),CPC.&WQQ2,G/S!&(R%)'&^,?V,KCQ7^UC9_$K^WX(H+35=*U+^SVL
MRS'[%I^K6A42;\ N=35@=O A(YW9'!?!C_@G+XB^">G1Z18>+_#UWHVH:9IM
MOJ[76@"2[-Q8V,EFC6KF0B%'5T)R"\>QPC?O,J >V?#7]KGP#\3/AYH/B.#Q
M%I>G0:_$C);WUW%%/:S'3UU%[>4;BJRQVC>:ZY.U 6SCFN7\%?\ !1'X8?$#
M7->BT[Q!I_\ 9'ARZ^RW>LW%[!!9-C33J+O&7<,ZI "7^4%0"V-@W5X=_P .
MC-;U7X>P^!]1\?:</"/[V[GEMM(==2DNIO#2Z&X5C*8UB4HLX&TE@3&>/F.]
MX_\ ^";WC/XV?\)1J'BSQGX4BUCQ/]L1QI6A2QVL*2^')]%7AYRS'=-YQR>@
M\L= U 'NEW^VU\)+#P6?$4WQ#\+1:*MZVG-=O?*$6X6(3,A[C$)$I)&!&0^=
MIS71^,_C[X*^'?PTM/&6M^*-%TWPKJ MVM-5FNE%M=?:,>1Y;YPYDW+L"Y+;
MAC.:^4/VGOV-?'/@_P"(FK^-O =L_B?Q!XEM;S2HK;^S[>2RL89]$L=//GK+
M=0MN:2Q1UD3<%5G1U(8,/;/^&5;_ %_]FOX-^#[W4;2SO_AQ=^&]1NW6'SH[
MF32_)9XTY&-[1D!NW!Q0!T6I_MD?#>WBUU+3Q?X=OM0\.V+:A>V8U&&!X8E$
M99F:1E5=HECW9(V>8N[&X58MOVP?A;>>,Y/#T?C_ ,*G6XK[^S&L_P"T(Q(;
MK[0+8P#GF43LL90?,KNJD L,_.7B+_@DY?ZU=^+K5/&-N=)U:7Q%=Z5+=+?7
M-U93ZS.9I@T;77V94C,DJYBB1I04WD%26Z;QK_P31F\9:)):GQ9!:3I/XOOK
M.ZCTW,EE>:QJ4&HV=PN7^]:36\;'_GH5_AH ]O/[5GPV'CBW\-?\)QX:_MVZ
MNY=/CLA?)YOVB*1XGA(S\KB2.1 IP2R,!D@BN-\4?\%'_@UX6U#0H7\;:3=Q
MZ]JLNDK<VTHDM[)X[.6\:6=^D<)AA8B3E6R,$C)'CGAC_@DM<>%?$NGS_P#"
M76VJ6FIIH=UXK^VQWJ_VGJ.G3M=2W:6\5TENYNKAF<BX27R224))P(M8_P""
M7GC+5?"D^E6_CO1M)TF)IK?3/#\%O?W.CZ5!/I6IZ;,]LEQ<R2VY9=1#+;H_
MV>,6R*J_,S4 ?1/@S]MKX1_$/6X=.T3XB^$M1OK@2-'#%J";B(XC.W4\?N09
M1GK&"XRHS4;_ +<?PA3PA'KQ^(GA7^R9;EK*.X^VK^\F6'SS&J_>+>3^]P!S
M'\X^7FO'/BI_P2Z'Q:T'7M)O/%:65AXAU6VO9WM;#;/%%%X5ET HC;\;MTGG
M D8 &S'.ZG?";_@G!K/A#Q_HOBC5_%&F7&KZ9=O)*;>.^N#<1#1KK38OWMW=
M32!@UT\F 0J*!&H_B(![E\&?VH_!WQ^\;^--!\+:E_:=SX$N;2UU":,9MY3<
MVL=U$\,@)$D9CE'S#C(.,C!,WBW]J3X>>!?&-_X>U3Q?H=KKVEV4FH76G&X#
M7,4*0M.WR#)W^4C2!!\Y12P4CFN*_8F_9+U/]DG2=8TNYUZRUW3[^ST6.%H[
M1[>6&:RTFUTZ7(+LOEN+2-U Y7>P); -<QXS_8,UCQ-\6=2NX?%6G6WA'4_&
M:?$&2W.G,VJ)J:::M@(!/Y@3[,0B2$[/,X:/.TY !W/P^_;?\#^+OV9_#?Q6
MU:^3PAX7\6Q)/IG]KSQ+-<(X9HP%C9QO9%9B@)90K9 VG!\%OVY/A_\ &O1;
M*\MM:T[27U#PY!XKBLK_ %"V6\33Y($G::2))&**B21EF/RX<$$@YKF]0_8Z
MU_0OAK\#X_#GB+2/^$N^"6GII]K/JEC)+INJJVF_V?.7B219$)4[T(<E2"IR
M&)KR>Y_X)#7]_P" =,TE_B#%:7MK'H.GW=]9Z1Y;7FG6NG'3M5LPID.Q+VW=
MP,$^41&?GV\@'LOQ+_X*.?"WX5_"L>*[[Q#I][;W<TL>FVFG7T%U<:LL=REL
M7A"OMQYCH/F92"P4X;Y:[+4/VN_A?I%_XDMKOQ[X6M9O" SK*S:A&@T\>:L)
MWDG'RRND;8^Z[JIPQ KY[\4_\$Q?$,$_C'_A&/&'AVQ@^(+75KJT>H:(]PME
M9MK5QJ=NMJ%E4*Z+<R0MN^5L1N I3::$O_!)6]DAU'3?^$PMI-(MKB^FT22Z
M6^N[F%;W6;;5)TD26Z-M&!Y!B_<1)YN5D?E<$ ]M^+/_  4-^$OPC^"TWCFY
M\7Z5J6E^1=RVD%C<(]UJ#VIV311HQ7#JY5"'*A7=02"PKO/!'Q]\&_$?QGJ?
MAS1/$>DZCKVBH7OK""X#S6P#F-L@==L@*,1G:PVG!XKYI^(O_!-#Q/J>M_$7
M4?#?C70;.Z^)L&MZ5J0U+1I+F.RL=0GCG5H569?W\95P23LD#(2 8QGT#X5?
MLF>+O@_\;?$/B71?$6BZ;H6H)=M#X=M$O1IM[<W-U%,U[-!)/)'!.JI(";58
MUF>=Y'&<  'T-1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!XK_P %
M()+R+_@G]\:FT]KQ+\>"=6-NUH7$XD^R2[=A3Y]V>FWGTKQCQKX5\3_LK?"[
MP,/#ME\.- UOQ!K-VTE]IWA^Z.GVBQ^'M1E@FG1GEFRDZ+N=""4)7!+'/VC1
M0!^?7AO]N+QWK>DZ59:AX]U#PO86TNK)>>+I=%L=?LM4U*"UT^:STVSFLXDA
MO(9/M%T<1Q0W,C6YA4K(A+</^VG^VY\2-=\8_$GP5:7U['HEU'X@T%M+%JMO
M?VBV^C274-U%%%$UQ$&DC0)/-<A9_/(CA!7(_3VB@#YH_;@^/'Q _9^U;PA+
MX8(O++Q_;3^#-.MS9I*-.\27.QM,O)&P6, V7 D4_*-J'O7@?B3]O#XT^ _%
M_P 0+>\>2Y?PH/$5K-IR:;!<75K:V*HECJL=JD:2+YWR3,]Q,+=UNCY8'E;3
M]Z>(?AAH7BSQCHFOZCIZWFJ>'&D?399)'*6CR+L9UCSLW[20'*EE#, 1N.=^
M@#X+_9;_ &JOBS\>/C9H/A:\\7>1HMKXHUFVO-2TVTM-0.J6EMIFE7<$/VS[
M'%;NHFO+B-IK>%5<1E4<E3)6O\9_VP_BUX5_;'\0^&+%+:PTK2M4M;/3-+F6
M)O[8TV32VN)[]$\E[EW2?S )$=;=/LFR0;GW5]NT4 ?GUX5_:W^+.EGPA8>+
M_'=UI'A[Q'I/AC6->\8S>'[2 ^&7U#2]1GD@13$84BDN[2WB#3H[1><REB70
MK@?LA?%3XCOHOPK\(:1XBU+2[77K7PY9WNO'04EU"XMY-*UZZED)N4<*S2VE
ML1Y@;RPY7'SU^DE% 'YV_#K]O3XH^)-9^%LGB3Q5'X9U7Q%KOA/2E\.-H$03
MQ/87UH)+Z_5G0R1M]H\V/]VX2'[/M92TBFO1_P!KN3X=G_@H9X<3XLW&F1>#
MQ\,=4DMUU6X>*T-X-2L^8N0#<>47QM_>8SBOI;4/V=?!FK?%2/QK=:)%<>(X
M7CE2XDGE:-98XS&DWDEO*\U48J)-F\#@-7:T ?FQ\%_VL?C[X)N/AWX5UI;R
MUNX[#P\+"RUTQ)=^*;>\O)DG,ZO"]W)<0V@A#&%E,#H7N,JYQU,/[:_Q0C_9
MYMM>MO$YUWQ!J.I:)!XJL_[!BTS_ (5O]IN;A+V'[3+&T"^7Y<46+I9'AR9I
M2T<B ??U% 'YY^#_ -J/X[_$.>SF;Q<^D6D5[X6TV$V/A^WNHM6M]3\0:AI\
MU^TLD !?['#!(#"%@$@\P!XG"GG?A_\ M-?$C3_C%JNNR>,;^?QK<6>@Z-8^
M%I]'CCC\;^5XDUFPFDYC_<R"T1)':V\L1\2N#%M6OTNHH _.'P)^V[\>/B'H
M%U%)J<6A:KJ%QH]OJ<<>GV]Y<^#;JY\106,L"PB ",?99)P$O&>7=;B49C)
M^@?^"B^B>'D^ =K8>)/$DMKX@BTV]70-5UA;I=+?45ML>?<K9^5%]IVES #M
MQ(28U)&*^G:* /D?X2Q:\O[6OP:\2ZYJGCZU36?@[?/J6B:[?;[;1KB.7169
MID5$4WA+R^9+)ECM8*$7*U]8:5JMMKNF6][93Q75G=Q+-!-$X>.9& *LI'!!
M!!!]ZL44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M5A^#?B;X;^(LEZGA_P 0:'KK:;)Y-XNG7\5T;1^?EDV,=C?*>#@\'TKD/VR_
MAWXC^+G[)GQ(\+^$+MK+Q1K_ (<OK#2YEG\@BXD@=4 D_@W$[=W\.<]J^=/B
M+->^(/"UE+\+O@MXT\#7&DZ1I6G:_K%KI0T;6+'2%U*V:[T?3T(#7$HMEN7$
MD#%4VCRG:21< 'VM17YE>(/&7Q:;XK:MX<L+_P"-W]MGPYJFI?#;2Q<W.Y/^
M)TL=A<:P&.=FW<O^G9'V?(E!D"UV'Q'G^,_C.\^-/@WPWXC\:W<?PK%RNC:G
MHVILUYK,VLW,%Q# 7!):33;?[5%M;D"6!NJB@#[]M-7M;^\NK>"YMYKBR94N
M8HY SV[,H90X!RI*D$ ]B#WJ*+Q'I\XOBE_9N-+<QWI6=3]D8('(DY^0[&5L
M-CA@>AKX _:IUCQI\#OB%XTM=3UWXFZ;\,;==0?1Y=-URX;5[FXA\/6+6TL<
MK2?:)K9+DWGF$LR"<Q^;\E<JG[//Q/\ &_P2\4ZM:6GQ%N=4^);K:ZK"FHS0
MVVLV<WP]BB:>2)65-[ZG'$AGP'\Q=NX+D$ _1?5/BKX7T36['3;WQ)H-IJ.J
M*KV5K/J$4<]VK'"F-"VYP3P"H.:F\9?$3P_\.K:UF\0:YH^A0WLXM;:34;V.
MU6XF()$:%R SD X4<\&OSF\$_LQ3^%]2M7\5_!G7OB0^JZ=:+:OJD&H&[*#<
MR R;619/(>&T=+^6W\HV88&1'(KU3]KKX4ZGJ/PD^&7@/7_".K>)_%6I>$;O
MPWKGCJ+0+OQ!#X7LI8;:._\ )AB23S+ZXVJD3NH ".[-@&.0 ^Q3\1O#X\5W
M.A?V[HW]N6=M]LN-.^VQ_:X(./WKQ;MZIR/F(QR.:B\/_%3PQXL\)G7M*\1Z
M#J>AJYC.HVFH136@8$*1YJL4SD@8SU(K\_/''[/NHZ1!J&CZG\+_ !OXLAT3
MQKXA\4ZE+;:?-)-XE\-SZ+/;6VGI=95I)I_.L[9H-V]?LSLRA4!.SXH_91G^
M*W[$'Q#U";PIJ\_CGQ-XMTCQ.WANRT2^T;3])N;9[""&"UMY4A^U1V]M "TS
MH5>1&D"KM14 /O+QGX]T/X<:(=2\0ZSI6@Z<KK$;O4;N.U@#MPJ[W(7)[#/-
M2>$_&.D>/M!AU30M5T[6M,N"PBO+"Y2Y@EVDJVUT)4X((.#P0:\,_P""BOPN
M\2?%CP=\,[+PO9BYO[#XCZ)J,TTFG?;X-/@BDD,EQ-#O3=&@(S\Z]1S7S/9^
M'/C+\"="\<QQ>'O'P\1:I-XY_M)O">ER1Z1JNLW=IIYT2\T^%&;R8##"PWR.
M?)N?M DDRX9@#]':*_/S7-,^-$7B/Q=IRZG\5W_M73I9Y-<CLM5_XILH^GLE
MHEHLH@O4D N(Q/I[PW:1M,6!DPU95U=_M'ZUKOA[[/IWCOPYID5M#!X>Q<:K
MJ;37::W.)[B\\QXW$4MG]E98]5XC@,B@F4$D _0;P[XRTCQ>LQTG5=-U,6Y
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
MR#@.@<':WN.:UZ** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** *\.EVUOJ$UW';P)=7*HDTRQ@22JF=H9NI W-@'IN/K5BBB@ HHHH R+
M[P!H6J>*[37KG1=)N-<L$,5KJ,MG&]W;(<@JDI&]0=S< _Q'UK7HHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
..*** "BBB@ HHHH __]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>14
<FILENAME>nwpx20201231_10k_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/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:nwpx="http://www.nwpipe.com/20201231"
  xmlns:srt="http://fasb.org/srt/2020-01-31"
  xmlns:thunderdome="http://www.RDGFilings.com"
  xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="nwpx-20201231.xsd" xlink:type="simple"/>
    <context id="d_2020-01-01_2020-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-06-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="i_2021-02-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2021-02-22</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2018-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201802Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</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="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-03-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-OutOfPeriodAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis">nwpx:OutOfPeriodAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-03-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:AccruedLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:AccruedLiabilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-01-31</instant>
        </period>
    </context>
    <context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-31</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-31_2020-01-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2020-01-31</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="d_2020-04-01_2020-06-30_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-31</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-31</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">nwpx:BacklogMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-31</startDate>
            <endDate>2020-01-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-02-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:GenevaPipeCompanyIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-02-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-07-27</instant>
        </period>
    </context>
    <context id="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-07-27</startDate>
            <endDate>2018-07-27</endDate>
        </period>
    </context>
    <context id="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-10-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">nwpx:AmeronWaterTransmissionGroupLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-26</instant>
        </period>
    </context>
    <context id="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUnitilFebruary2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">nwpx:PlacedInEscrowUnitilFebruary2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-12-26</startDate>
            <endDate>2017-12-26</endDate>
        </period>
    </context>
    <context id="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUntilDecember2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DisposalGroupClassificationAxis">nwpx:PlacedInEscrowUntilDecember2018Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis">nwpx:AtchisonFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-12-26</startDate>
            <endDate>2017-12-26</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:MachineryAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:EquipmentUnderFinanceLeaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:EquipmentUnderFinanceLeaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_StatementGeographicalAxis-MX">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_StatementGeographicalAxis-MX">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:MX</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:MonterreyMexicoFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-12-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">nwpx:PropertyInHoustonTexasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-08-01</startDate>
            <endDate>2018-08-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksAndTradeNamesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2018-10-25_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-25</instant>
        </period>
    </context>
    <context id="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-10-25</startDate>
            <endDate>2018-10-25</endDate>
        </period>
    </context>
    <context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-10-25</startDate>
            <endDate>2018-10-25</endDate>
        </period>
    </context>
    <context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-10-25</startDate>
            <endDate>2018-10-25</endDate>
        </period>
    </context>
    <context id="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-10-25</startDate>
            <endDate>2018-10-25</endDate>
        </period>
    </context>
    <context id="i_2020-03-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">nwpx:TermLoanMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">nwpx:WellsFargoBankNAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201602Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-01-01</instant>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:PropertyAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:PropertyAndEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:DesignatedAsHedgingInstrumentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:DefinedContributionPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">us-gaap:PensionPlansDefinedBenefitMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherNoncurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">nwpx:OtherLongtermLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherNoncurrentAssetsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RetirementPlanTypeAxis">nwpx:NonqualifiedRetirementSavingsPlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-CostOfSalesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_AwardTypeAxis-PerformanceSharesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">nwpx:RestrictedStockUnitsAndPerformanceStockAwardsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2017-01-31_CounterpartyNameAxis-LowerWillametteGroupMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">nwpx:LowerWillametteGroupMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-01-31</instant>
        </period>
    </context>
    <context id="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EnvironmentalRemediationSiteAxis">nwpx:PortlandHarborSuperfundSiteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-01-31</endDate>
        </period>
    </context>
    <context id="i_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:EnvironmentalRemediationSiteAxis">nwpx:PortlandHarborSuperfundSiteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-01-31</instant>
        </period>
    </context>
    <context id="i_2014-06-30_LossContingenciesByNatureOfContingencyAxis-PortlandHarborNaturalreSourcesTrusteeCouncilMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LossContingenciesByNatureOfContingencyAxis">nwpx:PortlandHarborNaturalreSourcesTrusteeCouncilMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2014-06-30</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_NoncatastrophicEventAxis-FireMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_NoncatastrophicEventAxis-FireMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:NoncatastrophicEventAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i_2018-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CumulativeEffectPeriodOfAdoptionAxis">srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AdjustmentsForNewAccountingPronouncementsAxis">us-gaap:AccountingStandardsUpdate201409Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-01-01</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementGeographicalAxis-US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementGeographicalAxis-US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementGeographicalAxis-US">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementGeographicalAxis-CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_StatementGeographicalAxis-CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_StatementGeographicalAxis-CA">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:CA</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredOverTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TimingOfTransferOfGoodOrServiceAxis">us-gaap:TransferredAtPointInTimeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2021-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:typedMember dimension="us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis">
                    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>2022-01-01</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain>
                </xbrldi:typedMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_BalanceSheetLocationAxis-OtherAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_BalanceSheetLocationAxis-OtherAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:CapitalLossCarryforwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:CapitalLossCarryforwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MinimumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MaximumMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2017-01-01_2017-12-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2017-01-01</startDate>
            <endDate>2017-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-01-01">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-01-01</endDate>
        </period>
    </context>
    <context id="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedDefinedBenefitPlansAdjustmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis">us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:EmployeeSeveranceMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-DemobilizationActivitiesMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">nwpx:DemobilizationActivitiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2017-12-31</instant>
        </period>
    </context>
    <context id="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001001385</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <unit id="USD">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="Share">
        <measure>shares</measure>
    </unit>
    <unit id="NonApplicable">
        <measure>thunderdome:item</measure>
    </unit>
    <unit id="USDPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="Pure">
        <measure>pure</measure>
    </unit>
    <unit id="Year">
        <measure>utr:Y</measure>
    </unit>
    <unit id="CAD">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="Month">
        <measure>utr:M</measure>
    </unit>
    <dei:EntityCentralIndexKey
      contextRef="d_2020-01-01_2020-12-31"
      id="thunderdome-EntityCentralIndexKey">0001001385</dei:EntityCentralIndexKey>
    <dei:EntityRegistrantName
      contextRef="d_2020-01-01_2020-12-31"
      id="thunderdome-EntityRegistrantName">Northwest Pipe Co.</dei:EntityRegistrantName>
    <dei:AmendmentFlag contextRef="d_2020-01-01_2020-12-31">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate contextRef="d_2020-01-01_2020-12-31">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalPeriodFocus contextRef="d_2020-01-01_2020-12-31">FY</dei:DocumentFiscalPeriodFocus>
    <dei:DocumentFiscalYearFocus contextRef="d_2020-01-01_2020-12-31">2020</dei:DocumentFiscalYearFocus>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013667"
      unitRef="USD">767000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013668"
      unitRef="USD">801000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i_2020-12-31"
      id="c70013714"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i_2019-12-31"
      id="c70013715"
      unitRef="USD"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013719"
      unitRef="USDPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013720"
      unitRef="USDPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013721"
      unitRef="Share">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013722"
      unitRef="Share">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013723"
      unitRef="Share">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013725"
      unitRef="Share">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013724"
      unitRef="Share">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013726"
      unitRef="Share">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013729"
      unitRef="USDPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013730"
      unitRef="USDPerShare">0.01</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013731"
      unitRef="Share">15000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013732"
      unitRef="Share">15000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013733"
      unitRef="Share">9805437</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70013735"
      unitRef="Share">9805437</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013734"
      unitRef="Share">9746979</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i_2019-12-31"
      decimals="INF"
      id="c70013736"
      unitRef="Share">9746979</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:NumberOfOperatingSegments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014065"
      unitRef="Pure">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent
      contextRef="i_2019-12-31"
      decimals="-5"
      id="c70014144"
      unitRef="USD">1700000</us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014175"
      unitRef="Share">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014191"
      unitRef="Pure">1</nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables>
    <nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables
      contextRef="d_2019-01-01_2019-12-31"
      decimals="INF"
      id="c70014192"
      unitRef="Pure">1</nwpx:NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables>
    <us-gaap:OperatingLeaseLiability
      contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member"
      decimals="-6"
      id="c70014560"
      unitRef="USD">8000000.0</us-gaap:OperatingLeaseLiability>
    <us-gaap:DerivativeNotionalAmount
      contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"
      decimals="-5"
      id="c70014698"
      unitRef="CAD">19500000</us-gaap:DerivativeNotionalAmount>
    <us-gaap:DerivativeNotionalAmount
      contextRef="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"
      decimals="-5"
      id="c70014700"
      unitRef="CAD">7900000</us-gaap:DerivativeNotionalAmount>
    <nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions
      contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="1"
      id="c70017463"
      unitRef="Pure">0.50</nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions>
    <nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions
      contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="1"
      id="c70017464"
      unitRef="Pure">0.50</nwpx:CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions>
    <nwpx:NumberOfNoncontributoryDefinedBenefitPlans
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="INF"
      id="c70014736"
      unitRef="Pure">2</nwpx:NumberOfNoncontributoryDefinedBenefitPlans>
    <us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent
      contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014744"
      unitRef="USD">1600000</us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent>
    <nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax
      contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014746"
      unitRef="USD">1800000</nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-3"
      id="c70014759"
      unitRef="USD">0</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-3"
      id="c70014760"
      unitRef="USD">0</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="-5"
      id="c70017468"
      unitRef="USD">4700000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherNoncurrentAssetsMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="-5"
      id="c70017469"
      unitRef="USD">5200000</us-gaap:DeferredCompensationPlanAssets>
    <nwpx:NumberOfActiveStockIncentivePlans
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014794"
      unitRef="Pure">1</nwpx:NumberOfActiveStockIncentivePlans>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember"
      id="c70014802">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"
      id="c70014825">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014804"
      unitRef="Share">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014805"
      unitRef="Share">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014818"
      unitRef="Share">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <nwpx:NumberOfMajorCustomers
      contextRef="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"
      decimals="INF"
      id="c70017481"
      unitRef="Pure">1</nwpx:NumberOfMajorCustomers>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01"
      id="c70014989">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1
      contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01"
      id="c70014991">P1Y</us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1>
    <nwpx:TaxCreditCarryforwardExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MinimumMember"
      id="c70015027">2023</nwpx:TaxCreditCarryforwardExpirationYear>
    <nwpx:TaxCreditCarryforwardExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_RangeAxis-MaximumMember"
      id="c70015028">2034</nwpx:TaxCreditCarryforwardExpirationYear>
    <nwpx:TaxCreditCarryforwardExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember"
      id="c70015030">2024</nwpx:TaxCreditCarryforwardExpirationYear>
    <nwpx:OperatingLossCarryforwardsExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MinimumMember"
      id="c70015034">2021</nwpx:OperatingLossCarryforwardsExpirationYear>
    <nwpx:OperatingLossCarryforwardsExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember_RangeAxis-MaximumMember"
      id="c70015035">2038</nwpx:OperatingLossCarryforwardsExpirationYear>
    <nwpx:TaxCreditCarryforwardExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember"
      id="c70015037">2021</nwpx:TaxCreditCarryforwardExpirationYear>
    <nwpx:OperatingLossCarryforwardsExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MinimumMember"
      id="c70015041">2023</nwpx:OperatingLossCarryforwardsExpirationYear>
    <nwpx:OperatingLossCarryforwardsExpirationYear
      contextRef="d_2020-01-01_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember_RangeAxis-MaximumMember"
      id="c70015042">2030</nwpx:OperatingLossCarryforwardsExpirationYear>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015050"
      unitRef="USD">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015051"
      unitRef="USD">0</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="d_2019-01-01_2019-12-31"
      decimals="2"
      id="c70015062"
      unitRef="Pure">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="d_2018-01-01_2018-12-31"
      decimals="2"
      id="c70015063"
      unitRef="Pure">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <dei:DocumentType contextRef="d_2020-01-01_2020-12-31">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="d_2020-01-01_2020-12-31">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="d_2020-01-01_2020-12-31">2020-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="d_2020-01-01_2020-12-31">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="d_2020-01-01_2020-12-31">0-27140</dei:EntityFileNumber>
    <dei:EntityIncorporationStateCountryCode contextRef="d_2020-01-01_2020-12-31">OR</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="d_2020-01-01_2020-12-31">93-0557988</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="d_2020-01-01_2020-12-31">201 NE Park Plaza Drive, Suite 100</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="d_2020-01-01_2020-12-31">Vancouver</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="d_2020-01-01_2020-12-31">WA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="d_2020-01-01_2020-12-31">98684</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="d_2020-01-01_2020-12-31">360</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="d_2020-01-01_2020-12-31">397-6250</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="d_2020-01-01_2020-12-31">Common Stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="d_2020-01-01_2020-12-31">NWPX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="d_2020-01-01_2020-12-31">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="d_2020-01-01_2020-12-31">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="d_2020-01-01_2020-12-31">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="d_2020-01-01_2020-12-31">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="d_2020-01-01_2020-12-31">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="d_2020-01-01_2020-12-31">Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="d_2020-01-01_2020-12-31">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="d_2020-01-01_2020-12-31">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany contextRef="d_2020-01-01_2020-12-31">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="i_2020-06-30" decimals="INF" unitRef="USD">240361182</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="i_2021-02-22" decimals="INF" unitRef="Share">9814398</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013589"
      unitRef="USD">285907000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013590"
      unitRef="USD">279317000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013591"
      unitRef="USD">172149000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013592"
      unitRef="USD">235388000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013593"
      unitRef="USD">232133000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013594"
      unitRef="USD">160053000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013595"
      unitRef="USD">50519000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013596"
      unitRef="USD">47184000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013597"
      unitRef="USD">12096000</us-gaap:GrossProfit>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013598"
      unitRef="USD">24954000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013599"
      unitRef="USD">18495000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013600"
      unitRef="USD">16663000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013601"
      unitRef="USD">-0</nwpx:GainLossOnDispositionOfFacility>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013602"
      unitRef="USD">-0</nwpx:GainLossOnDispositionOfFacility>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013603"
      unitRef="USD">2960000</nwpx:GainLossOnDispositionOfFacility>
    <us-gaap:RestructuringCharges
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013604"
      unitRef="USD">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013605"
      unitRef="USD">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013606"
      unitRef="USD">1364000</us-gaap:RestructuringCharges>
    <us-gaap:OperatingIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013607"
      unitRef="USD">25565000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013608"
      unitRef="USD">28689000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013609"
      unitRef="USD">-2971000</us-gaap:OperatingIncomeLoss>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013610"
      unitRef="USD">0</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013611"
      unitRef="USD">0</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013612"
      unitRef="USD">20080000</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013613"
      unitRef="USD">953000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013614"
      unitRef="USD">4383000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013615"
      unitRef="USD">267000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:InvestmentIncomeInterestAndDividend
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013616"
      unitRef="USD">49000</us-gaap:InvestmentIncomeInterestAndDividend>
    <us-gaap:InvestmentIncomeInterestAndDividend
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-4"
      id="c70013617"
      unitRef="USD">40000</us-gaap:InvestmentIncomeInterestAndDividend>
    <us-gaap:InvestmentIncomeInterestAndDividend
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013618"
      unitRef="USD">267000</us-gaap:InvestmentIncomeInterestAndDividend>
    <us-gaap:InterestExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013619"
      unitRef="USD">933000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013620"
      unitRef="USD">472000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013621"
      unitRef="USD">583000</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013622"
      unitRef="USD">25634000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-4"
      id="c70013623"
      unitRef="USD">32640000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013624"
      unitRef="USD">17060000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013625"
      unitRef="USD">6584000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013626"
      unitRef="USD">4738000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013627"
      unitRef="USD">-3252000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70013628"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013629"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013630"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70013632"
      unitRef="USDPerShare">1.95</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2019-01-01_2019-12-31"
      decimals="INF"
      id="c70013633"
      unitRef="USDPerShare">2.86</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2018-01-01_2018-12-31"
      decimals="INF"
      id="c70013634"
      unitRef="USDPerShare">2.09</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70013635"
      unitRef="USDPerShare">1.93</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2019-01-01_2019-12-31"
      decimals="INF"
      id="c70013636"
      unitRef="USDPerShare">2.85</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2018-01-01_2018-12-31"
      decimals="INF"
      id="c70013637"
      unitRef="USDPerShare">2.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013639"
      unitRef="Share">9788000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013640"
      unitRef="Share">9741000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013641"
      unitRef="Share">9726000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013642"
      unitRef="Share">9873000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013643"
      unitRef="Share">9779000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013644"
      unitRef="Share">9733000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70013645"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013646"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013647"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013649"
      unitRef="USD">25000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013650"
      unitRef="USD">-16000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013651"
      unitRef="USD">115000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013652"
      unitRef="USD">-27000</us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent>
    <us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013653"
      unitRef="USD">-59000</us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent>
    <us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013654"
      unitRef="USD">24000</us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013655"
      unitRef="USD">-52000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013656"
      unitRef="USD">-43000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013657"
      unitRef="USD">-91000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013658"
      unitRef="USD">18998000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013659"
      unitRef="USD">27859000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013660"
      unitRef="USD">20221000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013663"
      unitRef="USD">37927000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013664"
      unitRef="USD">31014000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:ReceivablesNetCurrent
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70013665"
      unitRef="USD">42680000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:ReceivablesNetCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013666"
      unitRef="USD">38026000</us-gaap:ReceivablesNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013669"
      unitRef="USD">76985000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:ContractWithCustomerAssetNetCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013670"
      unitRef="USD">91186000</us-gaap:ContractWithCustomerAssetNetCurrent>
    <us-gaap:InventoryNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013671"
      unitRef="USD">29177000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013672"
      unitRef="USD">30654000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013673"
      unitRef="USD">5194000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013674"
      unitRef="USD">4159000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013675"
      unitRef="USD">191963000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013676"
      unitRef="USD">195039000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013677"
      unitRef="USD">110184000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013678"
      unitRef="USD">99631000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013679"
      unitRef="USD">30813000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013680"
      unitRef="USD">7683000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013681"
      unitRef="USD">22985000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013682"
      unitRef="USD">0</us-gaap:Goodwill>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013683"
      unitRef="USD">10518000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013684"
      unitRef="USD">1231000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013685"
      unitRef="USD">6552000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013686"
      unitRef="USD">6661000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013687"
      unitRef="USD">373015000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013688"
      unitRef="USD">310245000</us-gaap:Assets>
    <us-gaap:LongTermDebtCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013691"
      unitRef="USD">7701000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013692"
      unitRef="USD">0</us-gaap:LongTermDebtCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013693"
      unitRef="USD">12993000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013694"
      unitRef="USD">15493000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013695"
      unitRef="USD">16814000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70013696"
      unitRef="USD">12150000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013697"
      unitRef="USD">6189000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013698"
      unitRef="USD">12281000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013699"
      unitRef="USD">2204000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013700"
      unitRef="USD">1642000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013701"
      unitRef="USD">45901000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013702"
      unitRef="USD">41566000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013703"
      unitRef="USD">5888000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013704"
      unitRef="USD">0</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013705"
      unitRef="USD">27911000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013706"
      unitRef="USD">6247000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013707"
      unitRef="USD">12481000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013708"
      unitRef="USD">4265000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013709"
      unitRef="USD">11208000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013710"
      unitRef="USD">10009000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013711"
      unitRef="USD">103389000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013712"
      unitRef="USD">62087000</us-gaap:Liabilities>
    <us-gaap:PreferredStockValue
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013717"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013718"
      unitRef="USD">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockValue
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013727"
      unitRef="USD">98000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013728"
      unitRef="USD">97000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013737"
      unitRef="USD">123013000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013738"
      unitRef="USD">120544000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013739"
      unitRef="USD">148381000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013740"
      unitRef="USD">129331000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013741"
      unitRef="USD">-1866000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013742"
      unitRef="USD">-1814000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013743"
      unitRef="USD">269626000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013744"
      unitRef="USD">248158000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013745"
      unitRef="USD">373015000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013746"
      unitRef="USD">310245000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:SharesOutstanding
      contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013765"
      unitRef="Share">9619755</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013766"
      unitRef="USD">96000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013767"
      unitRef="USD">119856000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013768"
      unitRef="USD">81757000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013769"
      unitRef="USD">-1445000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31"
      decimals="-3"
      id="c70013770"
      unitRef="USD">200264000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013772"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013773"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013774"
      unitRef="USD">-875000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013775"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2017-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember"
      decimals="-3"
      id="c70013776"
      unitRef="USD">-875000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013778"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013779"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013780"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013781"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013782"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013785"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013786"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013787"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013788"
      unitRef="USD">115000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013789"
      unitRef="USD">115000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013797"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013798"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013799"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013800"
      unitRef="USD">24000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013801"
      unitRef="USD">24000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013808"
      unitRef="Share">115300</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013809"
      unitRef="USD">-1000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013810"
      unitRef="USD">1302000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013811"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013812"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013813"
      unitRef="USD">1301000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013815"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013816"
      unitRef="USD">281000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013817"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2018-01-01_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013818"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013819"
      unitRef="USD">281000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesOutstanding
      contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013820"
      unitRef="Share">9735055</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013821"
      unitRef="USD">97000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013822"
      unitRef="USD">118835000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013823"
      unitRef="USD">101194000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013824"
      unitRef="USD">-1536000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31"
      decimals="-4"
      id="c70013825"
      unitRef="USD">218590000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013827"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013828"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013829"
      unitRef="USD">235000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013830"
      unitRef="USD">-235000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-12-31_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201802Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember"
      decimals="-3"
      id="c70013831"
      unitRef="USD">0</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013833"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013834"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013835"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013836"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013837"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013840"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013841"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013842"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013843"
      unitRef="USD">-16000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013844"
      unitRef="USD">-16000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013852"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013853"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013854"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013855"
      unitRef="USD">-59000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013856"
      unitRef="USD">-59000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013863"
      unitRef="Share">11924</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013864"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013865"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013866"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013867"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013868"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013870"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013871"
      unitRef="USD">1709000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013872"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2019-01-01_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013873"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013874"
      unitRef="USD">1709000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesOutstanding
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013875"
      unitRef="Share">9746979</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013876"
      unitRef="USD">97000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013877"
      unitRef="USD">120544000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013878"
      unitRef="USD">129331000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013879"
      unitRef="USD">-1814000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70013880"
      unitRef="USD">248158000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013882"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013883"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-4"
      id="c70013884"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013885"
      unitRef="USD">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70013886"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013889"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013890"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013891"
      unitRef="USD">-0</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013892"
      unitRef="USD">25000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013893"
      unitRef="USD">25000</us-gaap:OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013901"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013902"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013903"
      unitRef="USD">0</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013904"
      unitRef="USD">-27000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013905"
      unitRef="USD">-27000</us-gaap:OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013912"
      unitRef="Share">58458</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013913"
      unitRef="USD">-1000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013914"
      unitRef="USD">619000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013915"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013916"
      unitRef="USD">-0</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013917"
      unitRef="USD">618000</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013919"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013920"
      unitRef="USD">3088000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013921"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013922"
      unitRef="USD">0</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013923"
      unitRef="USD">3088000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:SharesOutstanding
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="INF"
      id="c70013924"
      unitRef="Share">9805437</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-CommonStockMember"
      decimals="-3"
      id="c70013925"
      unitRef="USD">98000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-AdditionalPaidInCapitalMember"
      decimals="-3"
      id="c70013926"
      unitRef="USD">123013000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-3"
      id="c70013927"
      unitRef="USD">148381000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70013928"
      unitRef="USD">-1866000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70013929"
      unitRef="USD">269626000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70013931"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013932"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013933"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013935"
      unitRef="USD">-0</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013936"
      unitRef="USD">-0</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013937"
      unitRef="USD">20080000</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013938"
      unitRef="USD">12344000</nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization>
    <nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013939"
      unitRef="USD">12391000</nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization>
    <nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013940"
      unitRef="USD">8767000</nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013941"
      unitRef="USD">-0</nwpx:GainLossOnDispositionOfFacility>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013942"
      unitRef="USD">-0</nwpx:GainLossOnDispositionOfFacility>
    <nwpx:GainLossOnDispositionOfFacility
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013943"
      unitRef="USD">2960000</nwpx:GainLossOnDispositionOfFacility>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013944"
      unitRef="USD">2207000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013945"
      unitRef="USD">322000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013946"
      unitRef="USD">550000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013947"
      unitRef="USD">2908000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013948"
      unitRef="USD">4169000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013949"
      unitRef="USD">-3847000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <nwpx:GainOnInsuranceProceeds
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013950"
      unitRef="USD">1147000</nwpx:GainOnInsuranceProceeds>
    <nwpx:GainOnInsuranceProceeds
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013951"
      unitRef="USD">1641000</nwpx:GainOnInsuranceProceeds>
    <nwpx:GainOnInsuranceProceeds
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013952"
      unitRef="USD">-0</nwpx:GainOnInsuranceProceeds>
    <us-gaap:ShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013953"
      unitRef="USD">3088000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013954"
      unitRef="USD">1709000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013955"
      unitRef="USD">281000</us-gaap:ShareBasedCompensation>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013956"
      unitRef="USD">-1889000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013957"
      unitRef="USD">-856000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013958"
      unitRef="USD">-665000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013960"
      unitRef="USD">-1563000</us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables>
    <us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013961"
      unitRef="USD">3435000</us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables>
    <us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013962"
      unitRef="USD">-2220000</us-gaap:IncreaseDecreaseInAccountsAndOtherReceivables>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013963"
      unitRef="USD">-8109000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013964"
      unitRef="USD">8379000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013965"
      unitRef="USD">17809000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013966"
      unitRef="USD">-7153000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013967"
      unitRef="USD">-8649000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013968"
      unitRef="USD">13628000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013969"
      unitRef="USD">-2514000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013970"
      unitRef="USD">-2454000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70013971"
      unitRef="USD">-2910000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013972"
      unitRef="USD">-3501000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013973"
      unitRef="USD">-4675000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013974"
      unitRef="USD">6592000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70013975"
      unitRef="USD">-90000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013976"
      unitRef="USD">2564000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013977"
      unitRef="USD">-2373000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013978"
      unitRef="USD">56087000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013979"
      unitRef="USD">42886000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70013980"
      unitRef="USD">-18400000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013982"
      unitRef="USD">48728000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013983"
      unitRef="USD">-0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013984"
      unitRef="USD">37223000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013985"
      unitRef="USD">14013000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013986"
      unitRef="USD">8585000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013987"
      unitRef="USD">3797000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013988"
      unitRef="USD">329000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013989"
      unitRef="USD">-0</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013990"
      unitRef="USD">-0</us-gaap:PaymentsToAcquireIntangibleAssets>
    <nwpx:ProceedsFromSaleOfFacility
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013991"
      unitRef="USD">0</nwpx:ProceedsFromSaleOfFacility>
    <nwpx:ProceedsFromSaleOfFacility
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013992"
      unitRef="USD">0</nwpx:ProceedsFromSaleOfFacility>
    <nwpx:ProceedsFromSaleOfFacility
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013993"
      unitRef="USD">8515000</nwpx:ProceedsFromSaleOfFacility>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013994"
      unitRef="USD">0</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013995"
      unitRef="USD">39000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013996"
      unitRef="USD">141000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:ProceedsFromInsuranceSettlementInvestingActivities
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70013997"
      unitRef="USD">1637000</us-gaap:ProceedsFromInsuranceSettlementInvestingActivities>
    <us-gaap:ProceedsFromInsuranceSettlementInvestingActivities
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70013998"
      unitRef="USD">2123000</us-gaap:ProceedsFromInsuranceSettlementInvestingActivities>
    <us-gaap:ProceedsFromInsuranceSettlementInvestingActivities
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70013999"
      unitRef="USD">0</us-gaap:ProceedsFromInsuranceSettlementInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014000"
      unitRef="USD">-61433000</us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations>
    <us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014001"
      unitRef="USD">-6423000</us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations>
    <us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014002"
      unitRef="USD">-32364000</us-gaap:NetCashProvidedByUsedInInvestingActivitiesContinuingOperations>
    <us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014003"
      unitRef="USD">0</us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations>
    <us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014004"
      unitRef="USD">0</us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations>
    <us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014005"
      unitRef="USD">4465000</us-gaap:CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014006"
      unitRef="USD">-61433000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014007"
      unitRef="USD">-6423000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014008"
      unitRef="USD">-27899000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014010"
      unitRef="USD">41377000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014011"
      unitRef="USD">41744000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:ProceedsFromLinesOfCredit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014012"
      unitRef="USD">29904000</us-gaap:ProceedsFromLinesOfCredit>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014013"
      unitRef="USD">41377000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014014"
      unitRef="USD">53208000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfLinesOfCredit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70014015"
      unitRef="USD">18440000</us-gaap:RepaymentsOfLinesOfCredit>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014016"
      unitRef="USD">15879000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014017"
      unitRef="USD">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014018"
      unitRef="USD">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014019"
      unitRef="USD">2117000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014020"
      unitRef="USD">-0</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014021"
      unitRef="USD">-0</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70014022"
      unitRef="USD">420000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014023"
      unitRef="USD">434000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014024"
      unitRef="USD">398000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014025"
      unitRef="USD">465000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014026"
      unitRef="USD">228000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsOfDebtIssuanceCosts
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014027"
      unitRef="USD">435000</us-gaap:PaymentsOfDebtIssuanceCosts>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014028"
      unitRef="USD">618000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014029"
      unitRef="USD">-0</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014030"
      unitRef="USD">1301000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014031"
      unitRef="USD">12259000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014032"
      unitRef="USD">-12126000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70014033"
      unitRef="USD">9330000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014034"
      unitRef="USD">6913000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014035"
      unitRef="USD">24337000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014036"
      unitRef="USD">-36969000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014037"
      unitRef="USD">31014000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2018-12-31"
      decimals="-3"
      id="c70014038"
      unitRef="USD">6677000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2017-12-31"
      decimals="-3"
      id="c70014039"
      unitRef="USD">43646000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014040"
      unitRef="USD">37927000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014041"
      unitRef="USD">31014000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
      contextRef="i_2018-12-31"
      decimals="-3"
      id="c70014042"
      unitRef="USD">6677000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations>
    <us-gaap:InterestPaidNet
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014044"
      unitRef="USD">599000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014045"
      unitRef="USD">369000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70014046"
      unitRef="USD">330000</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014047"
      unitRef="USD">1397000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014048"
      unitRef="USD">-55000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70014049"
      unitRef="USD">170000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014054"
      unitRef="USD">325000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014055"
      unitRef="USD">719000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014056"
      unitRef="USD">336000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014057"
      unitRef="USD">4471000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014058"
      unitRef="USD">1335000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014059"
      unitRef="USD">0</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014060"
      unitRef="USD">507000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014061"
      unitRef="USD">819000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014062"
      unitRef="USD">599000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763206">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;1.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;ORGANIZATION:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Northwest Pipe Company (collectively with its subsidiaries, the &#x201c;Company&#x201d;) is a leading manufacturer for water related infrastructure products. In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company produces high-quality precast and reinforced concrete products, Permalok&#xae; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and &lt;em style="font: inherit;"&gt;one&lt;/em&gt; of the largest offerings of fittings and specialized components. The Company provides solution-based products for a wide range of markets including water transmission and infrastructure, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. The Company&#x2019;s chief operating decision maker, its Chief Executive Officer, evaluates performance of the Company and makes decisions regarding allocation of resources based on total Company results. Therefore, the Company has determined that it operates in &lt;span style="-sec-ix-hidden:c70014065"&gt;one&lt;/span&gt; segment, Water Infrastructure. The Company has manufacturing facilities located in Portland, Oregon; Adelanto, California; Saginaw, Texas; Tracy, California; Parkersburg, West Virginia; Salt Lake City, Utah; Orem, Utah; St.&#160;George, Utah; St.&#160;Louis, Missouri; and San Luis R&#xed;o Colorado, Mexico.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Impact of &lt;/b&gt;&lt;b&gt;the &lt;/b&gt;&lt;b&gt;COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; &lt;/b&gt;&lt;b&gt;Pandemic&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; March 2020, &lt;/em&gt;the World Health Organization declared coronavirus disease &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; (&lt;em style="font: inherit;"&gt;&#x201c;COVID&#x2011;19&#x201d;&lt;/em&gt;) a pandemic. The COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic has resulted in governments around the world implementing increasingly stringent measures to help control the spread of the virus, including quarantines, &#x201c;shelter in place&#x201d; and &#x201c;stay at home&#x201d; orders, travel restrictions, business curtailments, school closures, and other measures. In addition, governments and central banks in several parts of the world have enacted fiscal and monetary stimulus measures to counteract the economic impacts of the COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Consistent with national guidelines and with state and local orders to date, the Company currently continues to operate its manufacturing facilities in the United States as it produces critical water infrastructure products. The Company has taken proactive and precautionary steps to ensure the safety of its employees, customers, and suppliers, including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In early &lt;em style="font: inherit;"&gt; April 2020, &lt;/em&gt;the Company was ordered to close its water infrastructure manufacturing facility in San Luis R&#xed;o Colorado, Mexico (&#x201c;SLRC&#x201d;) as a result of mandates made by Mexican authorities that companies that do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; carry out essential activities in Mexico must suspend business operations in order to combat and eradicate the existence and transmission of COVID-&lt;em style="font: inherit;"&gt;19.&lt;/em&gt; The Company diverted orders on a case-by-case basis to its United States-based facilities during this closure. In early &lt;em style="font: inherit;"&gt; June 2020, &lt;/em&gt;the Mexican authorities determined the SLRC facility was essential, and allowed weekly increases to the workforce. By &lt;em style="font: inherit;"&gt; July 2020, &lt;/em&gt;operations at the SLRC facility were fully restored.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;While the COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic has &lt;em style="font: inherit;"&gt;not&lt;/em&gt; had a material adverse effect on the Company's reported results for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company is unable to predict the ultimate impact that the COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic &lt;em style="font: inherit;"&gt; may &lt;/em&gt;have on its business, future results of operations, financial position, or cash flows. The extent to which the Company's operations &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be impacted by the COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic will depend largely on future developments, which are highly uncertain and cannot be accurately predicted, including new information which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;emerge concerning the severity of the pandemic and actions by government authorities to contain the pandemic or treat its impact. Furthermore, the impacts on global and domestic economic conditions, including the long-term potential to reduce or delay funding of municipal projects, and the continued disruptions to and volatility in the financial markets remain unknown. The Company continues to monitor&#160;the impact of the COVID-&lt;em style="font: inherit;"&gt;19&lt;/em&gt; pandemic on all aspects of its business.&lt;/p&gt;
  </us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763207">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;2.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Basis of Consolidation and Presentation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated. Certain amounts from the prior year financial statements have been reclassified in order to conform to the current year presentation.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Immaterial Correction of Error&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recorded revenue of $1.2&#160;million during the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; and &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; which should have been recorded in the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; March&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group,&#160;LLC (&#x201c;Ameron&#x201d;) facility. Management concluded that this out of period adjustment was &lt;em style="font: inherit;"&gt;not&lt;/em&gt; material to the consolidated financial results for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;em style="font: inherit;"/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Use of Estimates&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;U.S.&#160;GAAP&#x201d;) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results &lt;em style="font: inherit;"&gt; may &lt;/em&gt;differ from these estimates under different assumptions or conditions.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Business Combinations&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related transaction costs are expensed as incurred.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances &lt;em style="font: inherit;"&gt; may &lt;/em&gt;occur which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;affect the accuracy or validity of such estimates. As a result, during the measurement period, which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be up to &lt;em style="font: inherit;"&gt;one&lt;/em&gt; year from the acquisition date, the Company &lt;em style="font: inherit;"&gt; may &lt;/em&gt;record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the Company&#x2019;s Consolidated Statements of Operations.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Cash and Cash Equivalents&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Cash and cash equivalents consist of cash and short-term, highly-liquid investments with maturities of &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months or less when purchased.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Receivables and Allowance for Doubtful Accounts&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Trade receivables are reported on the Consolidated Balance Sheets net of doubtful accounts. The Company maintains allowances for estimated losses resulting from the inability of its customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#x2019;s judgment. The Company will write down or write off a receivable account once the account is deemed uncollectible. If the customers&#x2019; financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances &lt;em style="font: inherit;"&gt; may &lt;/em&gt;need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Contract Assets and Liabilities&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Contract assets primarily represent revenue earned over time but &lt;em style="font: inherit;"&gt;not&lt;/em&gt; yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within &lt;em style="font: inherit;"&gt;30&lt;/em&gt;&#160;days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Inventories&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Inventories are stated at the lower of cost and net realizable value. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the &lt;em style="font: inherit;"&gt;first&lt;/em&gt;-in, &lt;em style="font: inherit;"&gt;first&lt;/em&gt;-out method of accounting.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Property and Equipment&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Property and equipment are recorded at cost. Maintenance and repairs are expensed as incurred, and costs of new equipment and buildings, as well as costs of expansions or refurbishment of existing equipment and buildings, including interest where applicable, are capitalized. Depreciation and amortization are determined by the units of production method for most equipment and by the straight-line method for the remaining assets based on the estimated useful lives of the related assets. Estimated useful lives by major classes of property and equipment are as follows: Land improvements (15&#160;&#x2013; 30&#160;years); Buildings (20&#160;&#x2013; 40&#160;years); and Machinery and equipment (3&#160;&#x2013; 30&#160;years). Depreciation expense calculated under the units of production method &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be less than, equal to, or greater than depreciation expense calculated under the straight-line method due to variances in production levels. Upon disposal, costs and related accumulated depreciation of the assets are removed from the accounts and resulting gains or losses are reflected in operating expenses. The Company leases certain equipment under long-term finance leases, which are being amortized on a straight-line basis over the shorter of its useful life or the lease term.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company assesses impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) &lt;em style="font: inherit;"&gt; may &lt;/em&gt;&lt;em style="font: inherit;"&gt;not&lt;/em&gt; be recoverable. The asset group is the lowest level at which identifiable cash flows are largely independent of the cash flows of other groups of assets or liabilities. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about the expected future operating performance of the Company.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Goodwill&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Goodwill represents the excess of purchase price over the assigned fair values of the assets and liabilities assumed in conjunction with an acquisition. Goodwill is reviewed for impairment annually as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; or whenever events occur or circumstances change that indicate goodwill &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be impaired. In testing goodwill for impairment, the Company has the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; (more than &lt;em style="font: inherit;"&gt;50%&lt;/em&gt;) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, the Company evaluates factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. If the qualitative assessment indicates that it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that the fair value of the reporting unit is less than its carrying amount, or if the Company chooses &lt;em style="font: inherit;"&gt;not&lt;/em&gt; to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#x2019;s fair value. If the reporting unit&#x2019;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#x2019;s fair value, &lt;em style="font: inherit;"&gt;not&lt;/em&gt; to exceed the total amount of goodwill allocated to the reporting unit.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Intangible Assets&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Intangible assets consist primarily of customer relationships and trade names and trademarks recorded as the result of acquisition activity. Intangible assets are amortized using the straight-line method over estimated useful lives ranging from 3&#160;to 15&#160;years.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Workers Compensation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company is self-insured, or maintains high deductible policies, for losses and liabilities associated with workers compensation claims. Losses are accrued based upon the Company&#x2019;s estimates of the aggregate liability for claims incurred using historical experience and certain actuarial assumptions followed in the insurance industry. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; workers compensation reserves recorded were $1.7&#160;million, of which $0.2&#160;million and $0.3&#160;million, respectively, were included in Accrued liabilities and $1.5&#160;million and $1.4&#160;million, respectively, were included in Other long-term liabilities.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Accrued Liabilities&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;Accrued liabilities consist of the following (in thousands):&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Accrued liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued bonus&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,747&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued vacation payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,328&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,263&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;375&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;420&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Workers compensation reserves&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;237&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;269&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;5,083&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Total accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;16,814&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;12,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
     &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Derivative Instruments&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company conducts business in various foreign countries and, from time to time, settles transactions in foreign currencies. The Company has established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with the Company&#x2019;s strategy for financial risk management. The Company utilizes cash flow hedge accounting treatment for qualifying foreign currency forward contracts. Instruments that do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; qualify for cash flow hedge accounting treatment are remeasured at fair value on each balance sheet date and resulting gains and losses are recognized in earnings.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Pension Benefits&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has &lt;em style="font: inherit;"&gt;two&lt;/em&gt; defined benefit pension plans that have been frozen since &lt;em style="font: inherit;"&gt;2001.&lt;/em&gt; The Company funds these plans to cover current plan costs plus amortization of the unfunded plan liabilities. To record these obligations, management uses estimates relating to investment returns, mortality, and discount rates.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Foreign Currency Transactions&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The functional currency of the Company, including its Mexican operations, is the United States dollar. Monetary assets and liabilities are remeasured at current exchange rates and non-monetary assets and liabilities are remeasured at historical exchange rates. Revenue and expenses related to monetary assets and liabilities are remeasured at average exchange rates and at historical exchange rates for the revenue and expenses related to non-monetary assets and liabilities.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Transaction gains (losses) from foreign currency forward contracts designated as cash flow hedges are included in Accumulated other comprehensive loss as a separate component of Stockholders&#x2019; equity. For the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; net foreign currency transaction gains (losses) of $(1.1)&#160;million, $0.5&#160;million, and $(0.4)&#160;million, respectively, were recognized in earnings.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Revenue Recognition&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company&#x2019;s contracts with its customers contains a single performance obligation, as the promise to transfer products is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; separately identifiable from other promises in the contract and, therefore, is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; distinct.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
      &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company&#x2019;s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have &lt;em style="font: inherit;"&gt;no&lt;/em&gt; alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements &lt;em style="font: inherit;"&gt; may &lt;/em&gt;result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that &lt;em style="font: inherit;"&gt; may &lt;/em&gt;affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. The Company's contracts do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; contain significant financing.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Share-based Compensation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of restricted stock units (&#x201c;RSUs&#x201d;) and performance share awards (&#x201c;PSAs&#x201d;) using the value of the Company&#x2019;s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately &lt;em style="font: inherit;"&gt;not&lt;/em&gt; met.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Income Taxes&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future income tax consequences of events that have been recognized in the Company&#x2019;s financial statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of the provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. The provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company records income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. The Company assesses income tax positions and records income tax benefits for all years subject to examination based upon management&#x2019;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that an income tax benefit will be sustained, the largest amount of income tax benefit with a greater than &lt;em style="font: inherit;"&gt;50%&lt;/em&gt; likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information has been recorded. For those income tax positions where it is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that an income tax benefit will be sustained, &lt;em style="font: inherit;"&gt;no&lt;/em&gt; income tax benefit has been recognized in the Consolidated Financial Statements.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Accumulated Other Comprehensive Loss&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Accumulated other comprehensive loss includes unrealized gains and losses on derivative instruments related to the effective portion of cash flow hedges and changes in the funded status of the defined benefit pension plans, both net of the related income tax effect.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Net Income per Share&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all potential shares of common stock, including stock options, RSUs, and PSAs, to the extent dilutive. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;19,050&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;27,902&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;20,312&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Basic weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,788&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,741&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,726&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Effect of potentially dilutive common shares &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;38&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Diluted weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,873&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,779&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,733&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income per common share&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Basic&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.95&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.86&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Diluted&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.93&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
     &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
    &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;(&lt;em style="font: inherit;"&gt;1&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;There were no antidilutive shares for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; The weighted-average number of antidilutive shares &lt;em style="font: inherit;"&gt;not&lt;/em&gt; included in the computation of diluted net income per share was approximately&#160;63,000 for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; including approximately&#160;39,000 of PSAs, at the target level of 100%, that were &lt;em style="font: inherit;"&gt;not&lt;/em&gt; included because the performance conditions had &lt;em style="font: inherit;"&gt;not&lt;/em&gt; been met as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td&gt;&lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;em style="font: inherit;"/&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Concentrations of Credit Risk&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;span style="-sec-ix-hidden:c70014191"&gt;&lt;span style="-sec-ix-hidden:c70014192"&gt;one&lt;/span&gt;&lt;/span&gt; customer had a balance in excess of &lt;em style="font: inherit;"&gt;10%&lt;/em&gt; of total accounts receivable, and a different customer had a balance in excess of &lt;em style="font: inherit;"&gt;10%&lt;/em&gt; of total accounts receivable as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; Foreign currency forward contracts are with a high quality financial institution. The Company&#x2019;s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b/&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Recent Accounting and Reporting Developments&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;i&gt;Accounting Changes&lt;/i&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; August 2018, &lt;/em&gt;the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13,&lt;/em&gt; &#x201c;Fair Value Measurement (Topic&#160;&lt;em style="font: inherit;"&gt;820&lt;/em&gt;): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Fair Value Measurement&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13&#x201d;&lt;/em&gt;), which modifies the disclosure requirements for fair value measurements by removing, modifying, or adding certain disclosures. The Company adopted ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13&lt;/em&gt; on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and the impact was &lt;em style="font: inherit;"&gt;not&lt;/em&gt; material to the Company&#x2019;s financial position, results of operations, or cash flows.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
      &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;i&gt;Recent Accounting Standards&lt;/i&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; August 2018, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14,&lt;/em&gt; &#x201c;Compensation&#x2014;Retirement Benefits&#x2014;Defined Benefit Plans&#x2014;General (Topic&#160;&lt;em style="font: inherit;"&gt;715&lt;/em&gt;-&lt;em style="font: inherit;"&gt;20&lt;/em&gt;): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Defined Benefit Plans&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14&#x201d;&lt;/em&gt;), which modifies the disclosure requirements for employers that sponsor defined benefit pension or other postretirement plans by removing and adding certain disclosures for these plans. The eliminated disclosures include the amounts in accumulated other comprehensive income expected to be recognized in net periodic benefit costs over the next fiscal year and the amount and timing of plan assets expected to be returned to the employer. The new disclosures include an explanation of significant gains and losses related to changes in benefit obligations. ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14&lt;/em&gt; is effective for the Company beginning &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2021,&lt;/em&gt; with early adoption permitted, and will be adopted on a retrospective basis. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; December 2019, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12,&lt;/em&gt; &#x201c;Income Taxes (Topic&#160;&lt;em style="font: inherit;"&gt;740&lt;/em&gt;): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&#x201d;&lt;/em&gt;), which simplifies the accounting for income taxes by removing certain exceptions to the general principles in Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic&#160;&lt;em style="font: inherit;"&gt;740,&lt;/em&gt; &#x201c;Income Taxes&#x201d; (&#x201c;Topic&#160;&lt;em style="font: inherit;"&gt;740&#x201d;&lt;/em&gt;). ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&lt;/em&gt; also improves consistent application of and simplifies U.S. GAAP for other areas of Topic&#160;&lt;em style="font: inherit;"&gt;740&lt;/em&gt; by clarifying and amending existing guidance. ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&lt;/em&gt; is effective for the Company beginning &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2021,&lt;/em&gt; with early adoption permitted. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; March 2020, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2020&lt;/em&gt;-&lt;em style="font: inherit;"&gt;04,&lt;/em&gt; &#x201c;Reference Rate Reform (Topic&#160;&lt;em style="font: inherit;"&gt;848&lt;/em&gt;): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#x201d; which provides optional expedients and exceptions for applying U.S. GAAP to contracts, hedging relationships, and other transactions affected by the discontinuation of the London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) or by another reference rate expected to be discontinued. The guidance was effective beginning &lt;em style="font: inherit;"&gt; March 12, 2020 &lt;/em&gt;and can be applied prospectively through &lt;em style="font: inherit;"&gt; December 31, 2022. &lt;/em&gt;In &lt;em style="font: inherit;"&gt; January 2021, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2021&lt;/em&gt;-&lt;em style="font: inherit;"&gt;01,&lt;/em&gt; &#x201c;Reference Rate Reform - Scope,&#x201d; which clarified the scope and application of the original guidance. The Company will adopt these standards when LIBOR is discontinued and does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/&gt;
  </us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017437">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Basis of Consolidation and Presentation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated. Certain amounts from the prior year financial statements have been reclassified in order to conform to the current year presentation.&lt;/p&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:PriorPeriodReclassificationAdjustmentDescription contextRef="d_2020-01-01_2020-12-31" id="c70017438">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Immaterial Correction of Error&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recorded revenue of $1.2&#160;million during the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; and &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; which should have been recorded in the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; March&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group,&#160;LLC (&#x201c;Ameron&#x201d;) facility. Management concluded that this out of period adjustment was &lt;em style="font: inherit;"&gt;not&lt;/em&gt; material to the consolidated financial results for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;</us-gaap:PriorPeriodReclassificationAdjustmentDescription>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-03-31_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis-OutOfPeriodAdjustmentMember"
      decimals="-5"
      id="c70014084"
      unitRef="USD">-1200000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:UseOfEstimates contextRef="d_2020-01-01_2020-12-31" id="c70017439">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Use of Estimates&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#x201c;U.S.&#160;GAAP&#x201d;) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results &lt;em style="font: inherit;"&gt; may &lt;/em&gt;differ from these estimates under different assumptions or conditions.&lt;/p&gt;</us-gaap:UseOfEstimates>
    <us-gaap:BusinessCombinationsPolicy contextRef="d_2020-01-01_2020-12-31" id="c70017440">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Business Combinations&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related transaction costs are expensed as incurred.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances &lt;em style="font: inherit;"&gt; may &lt;/em&gt;occur which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;affect the accuracy or validity of such estimates. As a result, during the measurement period, which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be up to &lt;em style="font: inherit;"&gt;one&lt;/em&gt; year from the acquisition date, the Company &lt;em style="font: inherit;"&gt; may &lt;/em&gt;record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the Company&#x2019;s Consolidated Statements of Operations.&lt;/p&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017441">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Cash and Cash Equivalents&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Cash and cash equivalents consist of cash and short-term, highly-liquid investments with maturities of &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months or less when purchased.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:ReceivablesPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017442">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Receivables and Allowance for Doubtful Accounts&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Trade receivables are reported on the Consolidated Balance Sheets net of doubtful accounts. The Company maintains allowances for estimated losses resulting from the inability of its customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#x2019;s judgment. The Company will write down or write off a receivable account once the account is deemed uncollectible. If the customers&#x2019; financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances &lt;em style="font: inherit;"&gt; may &lt;/em&gt;need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.&lt;/p&gt;</us-gaap:ReceivablesPolicyTextBlock>
    <nwpx:ContractAssetsAndLiabilitiesPolicyPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017443">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Contract Assets and Liabilities&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Contract assets primarily represent revenue earned over time but &lt;em style="font: inherit;"&gt;not&lt;/em&gt; yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within &lt;em style="font: inherit;"&gt;30&lt;/em&gt;&#160;days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.&lt;/p&gt;</nwpx:ContractAssetsAndLiabilitiesPolicyPolicyTextBlock>
    <us-gaap:InventoryPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017444">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Inventories&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Inventories are stated at the lower of cost and net realizable value. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the &lt;em style="font: inherit;"&gt;first&lt;/em&gt;-in, &lt;em style="font: inherit;"&gt;first&lt;/em&gt;-out method of accounting.&lt;/p&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017445">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Property and Equipment&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Property and equipment are recorded at cost. Maintenance and repairs are expensed as incurred, and costs of new equipment and buildings, as well as costs of expansions or refurbishment of existing equipment and buildings, including interest where applicable, are capitalized. Depreciation and amortization are determined by the units of production method for most equipment and by the straight-line method for the remaining assets based on the estimated useful lives of the related assets. Estimated useful lives by major classes of property and equipment are as follows: Land improvements (15&#160;&#x2013; 30&#160;years); Buildings (20&#160;&#x2013; 40&#160;years); and Machinery and equipment (3&#160;&#x2013; 30&#160;years). Depreciation expense calculated under the units of production method &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be less than, equal to, or greater than depreciation expense calculated under the straight-line method due to variances in production levels. Upon disposal, costs and related accumulated depreciation of the assets are removed from the accounts and resulting gains or losses are reflected in operating expenses. The Company leases certain equipment under long-term finance leases, which are being amortized on a straight-line basis over the shorter of its useful life or the lease term.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company assesses impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) &lt;em style="font: inherit;"&gt; may &lt;/em&gt;&lt;em style="font: inherit;"&gt;not&lt;/em&gt; be recoverable. The asset group is the lowest level at which identifiable cash flows are largely independent of the cash flows of other groups of assets or liabilities. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about the expected future operating performance of the Company.&lt;/p&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MinimumMember"
      id="c70014124">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember_RangeAxis-MaximumMember"
      id="c70014126">P30Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MinimumMember"
      id="c70014127">P20Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember_RangeAxis-MaximumMember"
      id="c70014128">P40Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MinimumMember"
      id="c70014129">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="d_2020-01-01_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember_RangeAxis-MaximumMember"
      id="c70014130">P30Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="d_2020-01-01_2020-12-31" id="c70017446">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Goodwill&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Goodwill represents the excess of purchase price over the assigned fair values of the assets and liabilities assumed in conjunction with an acquisition. Goodwill is reviewed for impairment annually as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; or whenever events occur or circumstances change that indicate goodwill &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be impaired. In testing goodwill for impairment, the Company has the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; (more than &lt;em style="font: inherit;"&gt;50%&lt;/em&gt;) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, the Company evaluates factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. If the qualitative assessment indicates that it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that the fair value of the reporting unit is less than its carrying amount, or if the Company chooses &lt;em style="font: inherit;"&gt;not&lt;/em&gt; to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#x2019;s fair value. If the reporting unit&#x2019;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#x2019;s fair value, &lt;em style="font: inherit;"&gt;not&lt;/em&gt; to exceed the total amount of goodwill allocated to the reporting unit.&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:GoodwillAndIntangibleAssetsIntangibleAssetsPolicy contextRef="d_2020-01-01_2020-12-31" id="c70017447">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Intangible Assets&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Intangible assets consist primarily of customer relationships and trade names and trademarks recorded as the result of acquisition activity. Intangible assets are amortized using the straight-line method over estimated useful lives ranging from 3&#160;to 15&#160;years.&lt;/p&gt;</us-gaap:GoodwillAndIntangibleAssetsIntangibleAssetsPolicy>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="d_2020-01-01_2020-12-31_RangeAxis-MinimumMember"
      id="c70014138">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="d_2020-01-01_2020-12-31_RangeAxis-MaximumMember"
      id="c70014139">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <nwpx:WorkersCompensationInsurancePolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017448">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Workers Compensation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company is self-insured, or maintains high deductible policies, for losses and liabilities associated with workers compensation claims. Losses are accrued based upon the Company&#x2019;s estimates of the aggregate liability for claims incurred using historical experience and certain actuarial assumptions followed in the insurance industry. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; workers compensation reserves recorded were $1.7&#160;million, of which $0.2&#160;million and $0.3&#160;million, respectively, were included in Accrued liabilities and $1.5&#160;million and $1.4&#160;million, respectively, were included in Other long-term liabilities.&lt;/p&gt;</nwpx:WorkersCompensationInsurancePolicyTextBlock>
    <us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent
      contextRef="i_2020-12-31"
      decimals="-5"
      id="c70014143"
      unitRef="USD">1700000</us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent>
    <us-gaap:WorkersCompensationLiabilityCurrent
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"
      decimals="-5"
      id="c70014145"
      unitRef="USD">200000</us-gaap:WorkersCompensationLiabilityCurrent>
    <us-gaap:WorkersCompensationLiabilityCurrent
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"
      decimals="-5"
      id="c70014146"
      unitRef="USD">300000</us-gaap:WorkersCompensationLiabilityCurrent>
    <us-gaap:WorkersCompensationLiabilityNoncurrent
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember"
      decimals="-5"
      id="c70014147"
      unitRef="USD">1500000</us-gaap:WorkersCompensationLiabilityNoncurrent>
    <us-gaap:WorkersCompensationLiabilityNoncurrent
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember"
      decimals="-5"
      id="c70014148"
      unitRef="USD">1400000</us-gaap:WorkersCompensationLiabilityNoncurrent>
    <nwpx:AccruedLiabilitiesPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017449">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Accrued Liabilities&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;Accrued liabilities consist of the following (in thousands):&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Accrued liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued bonus&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,747&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued vacation payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,328&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,263&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;375&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;420&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Workers compensation reserves&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;237&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;269&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;5,083&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Total accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;16,814&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;12,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
     &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;</nwpx:AccruedLiabilitiesPolicyTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763208">
     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Accrued liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued bonus&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,747&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued vacation payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,328&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,263&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;375&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;420&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Workers compensation reserves&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;237&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;269&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8,977&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;5,083&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Total accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;16,814&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;12,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
    </us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014246"
      unitRef="USD">3747000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014247"
      unitRef="USD">3977000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014248"
      unitRef="USD">2328000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014249"
      unitRef="USD">2263000</us-gaap:AccruedVacationCurrent>
    <us-gaap:DerivativeLiabilitiesCurrent
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70014250"
      unitRef="USD">1150000</us-gaap:DerivativeLiabilitiesCurrent>
    <us-gaap:DerivativeLiabilitiesCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014251"
      unitRef="USD">138000</us-gaap:DerivativeLiabilitiesCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"
      decimals="-3"
      id="c70014252"
      unitRef="USD">375000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-AccruedLiabilityMember"
      decimals="-4"
      id="c70014253"
      unitRef="USD">420000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:WorkersCompensationLiabilityCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014254"
      unitRef="USD">237000</us-gaap:WorkersCompensationLiabilityCurrent>
    <us-gaap:WorkersCompensationLiabilityCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014255"
      unitRef="USD">269000</us-gaap:WorkersCompensationLiabilityCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014256"
      unitRef="USD">8977000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014257"
      unitRef="USD">5083000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014258"
      unitRef="USD">16814000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70014259"
      unitRef="USD">12150000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DerivativesPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017450">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Derivative Instruments&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company conducts business in various foreign countries and, from time to time, settles transactions in foreign currencies. The Company has established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with the Company&#x2019;s strategy for financial risk management. The Company utilizes cash flow hedge accounting treatment for qualifying foreign currency forward contracts. Instruments that do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; qualify for cash flow hedge accounting treatment are remeasured at fair value on each balance sheet date and resulting gains and losses are recognized in earnings.&lt;/p&gt;</us-gaap:DerivativesPolicyTextBlock>
    <us-gaap:PensionAndOtherPostretirementPlansPensionsPolicy contextRef="d_2020-01-01_2020-12-31" id="c70017451">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Pension Benefits&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has &lt;em style="font: inherit;"&gt;two&lt;/em&gt; defined benefit pension plans that have been frozen since &lt;em style="font: inherit;"&gt;2001.&lt;/em&gt; The Company funds these plans to cover current plan costs plus amortization of the unfunded plan liabilities. To record these obligations, management uses estimates relating to investment returns, mortality, and discount rates.&lt;/p&gt;</us-gaap:PensionAndOtherPostretirementPlansPensionsPolicy>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017452">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Foreign Currency Transactions&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The functional currency of the Company, including its Mexican operations, is the United States dollar. Monetary assets and liabilities are remeasured at current exchange rates and non-monetary assets and liabilities are remeasured at historical exchange rates. Revenue and expenses related to monetary assets and liabilities are remeasured at average exchange rates and at historical exchange rates for the revenue and expenses related to non-monetary assets and liabilities.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Transaction gains (losses) from foreign currency forward contracts designated as cash flow hedges are included in Accumulated other comprehensive loss as a separate component of Stockholders&#x2019; equity. For the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; net foreign currency transaction gains (losses) of $(1.1)&#160;million, $0.5&#160;million, and $(0.4)&#160;million, respectively, were recognized in earnings.&lt;/p&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionGainLossRealized
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014157"
      unitRef="USD">-1100000</us-gaap:ForeignCurrencyTransactionGainLossRealized>
    <us-gaap:ForeignCurrencyTransactionGainLossRealized
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-5"
      id="c70014158"
      unitRef="USD">500000</us-gaap:ForeignCurrencyTransactionGainLossRealized>
    <us-gaap:ForeignCurrencyTransactionGainLossRealized
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014159"
      unitRef="USD">-400000</us-gaap:ForeignCurrencyTransactionGainLossRealized>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017453">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Revenue Recognition&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company&#x2019;s contracts with its customers contains a single performance obligation, as the promise to transfer products is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; separately identifiable from other promises in the contract and, therefore, is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; distinct.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
      &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company&#x2019;s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have &lt;em style="font: inherit;"&gt;no&lt;/em&gt; alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements &lt;em style="font: inherit;"&gt; may &lt;/em&gt;result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that &lt;em style="font: inherit;"&gt; may &lt;/em&gt;affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. The Company's contracts do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; contain significant financing.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.&lt;/p&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="d_2020-01-01_2020-12-31" id="c70017454">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Share-based Compensation&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of restricted stock units (&#x201c;RSUs&#x201d;) and performance share awards (&#x201c;PSAs&#x201d;) using the value of the Company&#x2019;s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately &lt;em style="font: inherit;"&gt;not&lt;/em&gt; met.&lt;/p&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017455">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Income Taxes&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future income tax consequences of events that have been recognized in the Company&#x2019;s financial statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of the provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. The provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company records income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. The Company assesses income tax positions and records income tax benefits for all years subject to examination based upon management&#x2019;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that an income tax benefit will be sustained, the largest amount of income tax benefit with a greater than &lt;em style="font: inherit;"&gt;50%&lt;/em&gt; likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information has been recorded. For those income tax positions where it is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; more-likely-than-&lt;em style="font: inherit;"&gt;not&lt;/em&gt; that an income tax benefit will be sustained, &lt;em style="font: inherit;"&gt;no&lt;/em&gt; income tax benefit has been recognized in the Consolidated Financial Statements.&lt;/p&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017456">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Accumulated Other Comprehensive Loss&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Accumulated other comprehensive loss includes unrealized gains and losses on derivative instruments related to the effective portion of cash flow hedges and changes in the funded status of the defined benefit pension plans, both net of the related income tax effect.&lt;/p&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017457">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Net Income per Share&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all potential shares of common stock, including stock options, RSUs, and PSAs, to the extent dilutive. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;19,050&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;27,902&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;20,312&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Basic weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,788&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,741&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,726&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Effect of potentially dilutive common shares &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;38&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Diluted weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,873&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,779&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,733&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income per common share&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Basic&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.95&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.86&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Diluted&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.93&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
     &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
    &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;(&lt;em style="font: inherit;"&gt;1&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;There were no antidilutive shares for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; The weighted-average number of antidilutive shares &lt;em style="font: inherit;"&gt;not&lt;/em&gt; included in the computation of diluted net income per share was approximately&#160;63,000 for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; including approximately&#160;39,000 of PSAs, at the target level of 100%, that were &lt;em style="font: inherit;"&gt;not&lt;/em&gt; included because the performance conditions had &lt;em style="font: inherit;"&gt;not&lt;/em&gt; been met as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763209">
     &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;19,050&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;27,902&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;20,312&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Basic weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,788&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,741&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,726&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Effect of potentially dilutive common shares &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;38&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Diluted weighted-average common shares outstanding&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,873&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,779&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,733&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income per common share&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Basic&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.95&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.86&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Diluted&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1.93&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.85&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2.09&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
    </us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70014260"
      unitRef="USD">19050000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014261"
      unitRef="USD">27902000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014262"
      unitRef="USD">20312000</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014263"
      unitRef="Share">9788000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014264"
      unitRef="Share">9741000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014265"
      unitRef="Share">9726000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014266"
      unitRef="Share">85000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014267"
      unitRef="Share">38000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014268"
      unitRef="Share">7000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014269"
      unitRef="Share">9873000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014270"
      unitRef="Share">9779000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014271"
      unitRef="Share">9733000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014273"
      unitRef="USDPerShare">1.95</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2019-01-01_2019-12-31"
      decimals="INF"
      id="c70014274"
      unitRef="USDPerShare">2.86</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="d_2018-01-01_2018-12-31"
      decimals="INF"
      id="c70014275"
      unitRef="USDPerShare">2.09</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014276"
      unitRef="USDPerShare">1.93</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2019-01-01_2019-12-31"
      decimals="INF"
      id="c70014277"
      unitRef="USDPerShare">2.85</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="d_2018-01-01_2018-12-31"
      decimals="INF"
      id="c70014278"
      unitRef="USDPerShare">2.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014174"
      unitRef="Share">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="d_2018-01-01_2018-12-31"
      decimals="INF"
      id="c70014180"
      unitRef="Share">63000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="INF"
      id="c70014183"
      unitRef="Share">39000</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage
      contextRef="i_2019-12-31"
      decimals="0"
      id="c70014184"
      unitRef="Pure">1</nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage>
    <us-gaap:ConcentrationRiskCreditRisk contextRef="d_2020-01-01_2020-12-31" id="c70017458">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Concentrations of Credit Risk&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;span style="-sec-ix-hidden:c70014191"&gt;&lt;span style="-sec-ix-hidden:c70014192"&gt;one&lt;/span&gt;&lt;/span&gt; customer had a balance in excess of &lt;em style="font: inherit;"&gt;10%&lt;/em&gt; of total accounts receivable, and a different customer had a balance in excess of &lt;em style="font: inherit;"&gt;10%&lt;/em&gt; of total accounts receivable as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; Foreign currency forward contracts are with a high quality financial institution. The Company&#x2019;s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.&lt;/p&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="d_2020-01-01_2020-12-31" id="c70017459">&lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Recent Accounting and Reporting Developments&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;i&gt;Accounting Changes&lt;/i&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; August 2018, &lt;/em&gt;the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13,&lt;/em&gt; &#x201c;Fair Value Measurement (Topic&#160;&lt;em style="font: inherit;"&gt;820&lt;/em&gt;): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Fair Value Measurement&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13&#x201d;&lt;/em&gt;), which modifies the disclosure requirements for fair value measurements by removing, modifying, or adding certain disclosures. The Company adopted ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;13&lt;/em&gt; on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and the impact was &lt;em style="font: inherit;"&gt;not&lt;/em&gt; material to the Company&#x2019;s financial position, results of operations, or cash flows.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
      &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;i&gt;Recent Accounting Standards&lt;/i&gt;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; August 2018, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14,&lt;/em&gt; &#x201c;Compensation&#x2014;Retirement Benefits&#x2014;Defined Benefit Plans&#x2014;General (Topic&#160;&lt;em style="font: inherit;"&gt;715&lt;/em&gt;-&lt;em style="font: inherit;"&gt;20&lt;/em&gt;): Disclosure Framework&#x2014;Changes to the Disclosure Requirements for Defined Benefit Plans&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14&#x201d;&lt;/em&gt;), which modifies the disclosure requirements for employers that sponsor defined benefit pension or other postretirement plans by removing and adding certain disclosures for these plans. The eliminated disclosures include the amounts in accumulated other comprehensive income expected to be recognized in net periodic benefit costs over the next fiscal year and the amount and timing of plan assets expected to be returned to the employer. The new disclosures include an explanation of significant gains and losses related to changes in benefit obligations. ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;14&lt;/em&gt; is effective for the Company beginning &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2021,&lt;/em&gt; with early adoption permitted, and will be adopted on a retrospective basis. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; December 2019, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12,&lt;/em&gt; &#x201c;Income Taxes (Topic&#160;&lt;em style="font: inherit;"&gt;740&lt;/em&gt;): Simplifying the Accounting for Income Taxes&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&#x201d;&lt;/em&gt;), which simplifies the accounting for income taxes by removing certain exceptions to the general principles in Accounting Standards Codification (&#x201c;ASC&#x201d;) Topic&#160;&lt;em style="font: inherit;"&gt;740,&lt;/em&gt; &#x201c;Income Taxes&#x201d; (&#x201c;Topic&#160;&lt;em style="font: inherit;"&gt;740&#x201d;&lt;/em&gt;). ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&lt;/em&gt; also improves consistent application of and simplifies U.S. GAAP for other areas of Topic&#160;&lt;em style="font: inherit;"&gt;740&lt;/em&gt; by clarifying and amending existing guidance. ASU&#160;&lt;em style="font: inherit;"&gt;2019&lt;/em&gt;-&lt;em style="font: inherit;"&gt;12&lt;/em&gt; is effective for the Company beginning &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2021,&lt;/em&gt; with early adoption permitted. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; March 2020, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2020&lt;/em&gt;-&lt;em style="font: inherit;"&gt;04,&lt;/em&gt; &#x201c;Reference Rate Reform (Topic&#160;&lt;em style="font: inherit;"&gt;848&lt;/em&gt;): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#x201d; which provides optional expedients and exceptions for applying U.S. GAAP to contracts, hedging relationships, and other transactions affected by the discontinuation of the London Interbank Offered Rate (&#x201c;LIBOR&#x201d;) or by another reference rate expected to be discontinued. The guidance was effective beginning &lt;em style="font: inherit;"&gt; March 12, 2020 &lt;/em&gt;and can be applied prospectively through &lt;em style="font: inherit;"&gt; December 31, 2022. &lt;/em&gt;In &lt;em style="font: inherit;"&gt; January 2021, &lt;/em&gt;the FASB issued Accounting Standards Update &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2021&lt;/em&gt;-&lt;em style="font: inherit;"&gt;01,&lt;/em&gt; &#x201c;Reference Rate Reform - Scope,&#x201d; which clarified the scope and application of the original guidance. The Company will adopt these standards when LIBOR is discontinued and does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.&lt;/p&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763210">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;3.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;BUSINESS COMBINATION&lt;/b&gt;&lt;b&gt;S&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Geneva Pipe &lt;/b&gt;&lt;b&gt;and Precast &lt;/b&gt;&lt;b&gt;Company&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;On &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company completed the acquisition of 100% of Geneva Pipe and Precast Company (&#x201c;Geneva&#x201d;) (fka Geneva Pipe Company,&#160;Inc.) for a purchase price of $49.4&#160;million in cash. Geneva is a concrete pipe and precast concrete products manufacturer based in Utah. This acquisition expanded the Company&#x2019;s water infrastructure product capabilities by adding additional reinforced concrete pipe capacity and a full line of precast concrete products including storm drains and manholes, catch basins, vaults, and curb inlets as well as innovative lined products that extend the life of concrete pipe and manholes for sewer applications. Operations have continued with Geneva's previous management and workforce at the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; Utah manufacturing facilities located in Salt Lake City, Orem, and St.&#160;George. Consistent with prior periods and considering the chief operating decision maker's evaluation of post-acquisition performance is based on total Company results, the Company continues to report as one segment.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Assets&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Cash and cash equivalents&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;691&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Trade and other receivables&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,089&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,673&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Prepaid expenses and other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;356&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,096&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating lease right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;21,684&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;11,165&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total assets acquired&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;55,754&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Liabilities&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: justify; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accounts payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,395&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,189&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;20,454&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,343&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other long-term liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;939&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total liabilities assumed&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;29,320&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Total purchase consideration&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;49,419&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the remaining unallocated purchase consideration recorded as goodwill. As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; June&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;30,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; which resulted in a $0.1&#160;million balance sheet reclassification between trade and other receivables and inventories.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes the components of the intangible assets acquired and their estimated useful lives:&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Estimated &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Useful Life&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Fair Value&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;(In years) &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;(In thousands) &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;11.0&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8,031&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;10.0&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,093&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Backlog&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;0.9&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,041&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;9.9&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;11,165&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Goodwill arose from the acquisition of an assembled workforce, expansion of product offerings, and management&#x2019;s industry know-how. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; expect the goodwill to be deductible for tax purposes.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company incurred transaction costs associated with this acquisition of $2.6&#160;million and $0.6&#160;million during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively. These transaction costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Geneva operations contributed net sales of $44.2&#160;million to the Company&#x2019;s continuing operations for the period from &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; to &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020.&lt;/em&gt; It is impracticable to determine the effect on net income as a substantial portion of Geneva has been integrated into the Company&#x2019;s ongoing operations.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Geneva had occurred on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisitions (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;289,496&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;323,741&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,025&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;27,163&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; necessarily indicate what the operating results would have been if the acquisition of Geneva had occurred on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition. Moreover, this information is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; indicative of what the Company&#x2019;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Geneva. The pro forma amounts have been calculated after applying the Company&#x2019;s accounting policies and adjusting the results of Geneva to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition. Adjustments also include an increase of interest expense as if the Company&#x2019;s debt obtained in connection with the acquisition of Geneva had been outstanding since &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Ameron Water Transmission Group,&lt;/b&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;b&gt;LLC&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;On &lt;em style="font: inherit;"&gt; July&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;27,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; the Company completed the acquisition of 100% of Ameron Water Transmission Group,&#160;LLC for a purchase price of $38.1&#160;million in cash. Ameron was a major supplier of engineered welded steel pressure pipe and reinforced concrete pipe. In addition to strengthening the Company&#x2019;s position in the water infrastructure market, this acquisition expanded the Company's bar-wrapped concrete cylinder pipe capabilities and added reinforced concrete pipe and T-Lock&#xae;&#x2014;a proprietary polyvinyl chloride (PVC) lining for concrete pipe sewer applications&#x2014;to the Company&#x2019;s product portfolio. In connection with the acquisition, the Company acquired pipe facilities in Tracy, California and San Luis R&#xed;o Colorado, Mexico, as well as protective lining equipment in Brea, California. In &lt;em style="font: inherit;"&gt; December 2019, &lt;/em&gt;the Company closed its leased facility in Brea, California.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of &lt;em style="font: inherit;"&gt; July&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;27,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Assets&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Cash and cash equivalents&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;912&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Trade and other receivables&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8,887&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Contract assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;12,018&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,937&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Prepaid expenses and other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,777&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;34,827&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Other assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;320&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total assets acquired&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;68,678&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Liabilities&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: justify; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Accounts payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,520&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,599&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Contract liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;3,221&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total liabilities assumed&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;10,463&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Bargain purchase gain&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(20,080&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Total purchase consideration&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;38,135&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the &lt;em style="font: inherit;"&gt;three&lt;/em&gt; months ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; which resulted in a net decrease of the bargain purchase gain of $1.8&#160;million. The adjustments primarily included reclassifications between balance sheet categories and a $2.0&#160;million reduction in inventories. The Company recorded no measurement period adjustments during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the excess of the aggregate net fair value of assets acquired and liabilities assumed over the fair value of consideration transferred as the purchase price recorded as a bargain purchase gain. When it became apparent there was a potential for a bargain purchase gain, management reviewed the Ameron assets acquired and liabilities assumed as well as the assumptions utilized in estimating their fair values. Upon completion of this reassessment, the Company concluded that recording a bargain purchase gain with respect to Ameron was appropriate and required under U.S.&#160;GAAP. The Company believes the seller was motivated to complete the transaction as part of an overall repositioning of its business.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company incurred transaction costs associated with this acquisition of $2.6&#160;million during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; These costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Ameron had occurred on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31, 2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;200,513&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net loss&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(15,102&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; necessarily indicate what the operating results would have been if the acquisition of Ameron had occurred on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition. Moreover, this information is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; indicative of what the Company&#x2019;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Ameron. The pro forma amounts have been calculated after applying the Company&#x2019;s accounting policies and adjusting the results of Ameron to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition and remove the bargain purchase gain. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.&lt;/p&gt;
  </us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="0"
      id="c70014282"
      unitRef="Pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-5"
      id="c70014283"
      unitRef="USD">49400000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:NumberOfOperatingSegments
      contextRef="d_2020-01-31_2020-01-31"
      decimals="INF"
      id="c70014285"
      unitRef="Pure">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock
      contextRef="d_2020-01-01_2020-12-31"
      id="c60BBB1E3-BABE-4FC4-AD2B-3E33C78C5F14">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Assets&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Cash and cash equivalents&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;691&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Trade and other receivables&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,089&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,673&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Prepaid expenses and other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;356&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,096&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating lease right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;21,684&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;11,165&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total assets acquired&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;55,754&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Liabilities&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: justify; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accounts payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,395&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,189&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;20,454&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,343&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other long-term liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;939&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total liabilities assumed&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;29,320&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Total purchase consideration&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;49,419&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Assets&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Cash and cash equivalents&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;912&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Trade and other receivables&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8,887&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Contract assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;12,018&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,937&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Prepaid expenses and other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,777&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;34,827&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Other assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;320&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total assets acquired&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;68,678&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Liabilities&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: justify; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Accounts payable&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,520&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Accrued liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,599&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Contract liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;3,221&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total liabilities assumed&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;10,463&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Bargain purchase gain&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(20,080&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Total purchase consideration&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;38,135&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014336"
      unitRef="USD">691000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014337"
      unitRef="USD">7089000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014338"
      unitRef="USD">5673000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014339"
      unitRef="USD">356000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014340"
      unitRef="USD">9096000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014341"
      unitRef="USD">21684000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014342"
      unitRef="USD">11165000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014343"
      unitRef="USD">55754000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014345"
      unitRef="USD">1395000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014346"
      unitRef="USD">1189000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014347"
      unitRef="USD">20454000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014348"
      unitRef="USD">5343000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014349"
      unitRef="USD">939000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-4"
      id="c70014350"
      unitRef="USD">29320000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities>
    <us-gaap:Goodwill
      contextRef="i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014351"
      unitRef="USD">22985000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014352"
      unitRef="USD">49419000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <nwpx:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables
      contextRef="d_2020-04-01_2020-06-30_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-5"
      id="c70014292"
      unitRef="USD">-100000</nwpx:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables>
    <us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763213">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Estimated &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Useful Life&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Fair Value&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;(In years) &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;(In thousands) &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;11.0&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8,031&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;10.0&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,093&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Backlog&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;0.9&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,041&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;"&gt;9.9&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;11,165&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      id="c70014370">P11Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014371"
      unitRef="USD">8031000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember"
      id="c70014372">P10Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-TradeNamesMember"
      decimals="-3"
      id="c70014373"
      unitRef="USD">2093000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember"
      id="c70014374">P0Y10M24D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember_FiniteLivedIntangibleAssetsByMajorClassAxis-BacklogMember"
      decimals="-3"
      id="c70014375"
      unitRef="USD">1041000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      id="c70014376">P9Y10M24D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014377"
      unitRef="USD">11165000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-5"
      id="c70014294"
      unitRef="USD">2600000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-5"
      id="c70014295"
      unitRef="USD">600000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="d_2020-02-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-5"
      id="c70014299"
      unitRef="USD">44200000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="d_2020-01-01_2020-12-31"
      id="C499691D-681A-49C6-90E3-9182A50D12D5">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;289,496&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;323,741&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net income&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,025&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;27,163&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31, 2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 84%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;200,513&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net loss&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(15,102&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014378"
      unitRef="USD">289496000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014379"
      unitRef="USD">323741000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014381"
      unitRef="USD">22025000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014382"
      unitRef="USD">27163000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="0"
      id="c70014313"
      unitRef="Pure">1</us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-5"
      id="c70014314"
      unitRef="USD">38100000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014354"
      unitRef="USD">912000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014355"
      unitRef="USD">8887000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014356"
      unitRef="USD">12018000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014357"
      unitRef="USD">7937000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014358"
      unitRef="USD">3777000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014359"
      unitRef="USD">34827000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-4"
      id="c70014360"
      unitRef="USD">320000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014361"
      unitRef="USD">68678000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-4"
      id="c70014363"
      unitRef="USD">5520000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014364"
      unitRef="USD">1599000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities>
    <nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014365"
      unitRef="USD">123000</nwpx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014366"
      unitRef="USD">3221000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities
      contextRef="i_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014367"
      unitRef="USD">10463000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities>
    <us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount
      contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-4"
      id="c70014368"
      unitRef="USD">20080000</us-gaap:BusinessCombinationBargainPurchaseGainRecognizedAmount>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="d_2018-07-27_2018-07-27_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014369"
      unitRef="USD">38135000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <nwpx:BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment
      contextRef="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-5"
      id="c70014321"
      unitRef="USD">-1800000</nwpx:BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment>
    <nwpx:BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment
      contextRef="d_2018-10-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-6"
      id="c70014322"
      unitRef="USD">-2000000.0</nwpx:BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment>
    <us-gaap:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred
      contextRef="d_2019-01-01_2019-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014323"
      unitRef="USD">0</us-gaap:BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-5"
      id="c70014326"
      unitRef="USD">2600000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014386"
      unitRef="USD">200513000</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-3"
      id="c70014389"
      unitRef="USD">-15102000</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763216">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;4.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;DISCONTINUED OPERATIONS:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;On &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;26,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2017,&lt;/em&gt; the Company completed the sale of substantially all of the assets associated with the Company&#x2019;s manufacturing facility in Atchison, Kansas, including all of the real and tangible personal property located at the site of that manufacturing facility. Total consideration of $37.2&#160;million in cash was paid by the buyer, resulting in a nominal gain recognized on the sale. Of the proceeds received, $0.8&#160;million was placed in escrow until it was released in &lt;em style="font: inherit;"&gt; February 2018 &lt;/em&gt;and $3.7&#160;million was placed in escrow until it was released in &lt;em style="font: inherit;"&gt; December 2018. &lt;/em&gt;In accordance with applicable accounting guidance, cash flows from the Company&#x2019;s discontinued operations are presented separately in the Consolidated Statements of Cash Flows.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

  </us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock>
    <us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration
      contextRef="i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"
      decimals="-5"
      id="c70014393"
      unitRef="USD">37200000</us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration>
    <us-gaap:EscrowDepositsRelatedToPropertySales
      contextRef="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUnitilFebruary2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"
      decimals="-5"
      id="c70014394"
      unitRef="USD">800000</us-gaap:EscrowDepositsRelatedToPropertySales>
    <us-gaap:EscrowDepositsRelatedToPropertySales
      contextRef="d_2017-12-26_2017-12-26_DisposalGroupClassificationAxis-PlacedInEscrowUntilDecember2018Member_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember"
      decimals="-5"
      id="c70014395"
      unitRef="USD">3700000</us-gaap:EscrowDepositsRelatedToPropertySales>
    <us-gaap:InventoryDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763217">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;
    &lt;tbody&gt;
     &lt;tr style="vertical-align: top;"&gt;
      &lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;5.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;INVENTORIES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
     &lt;/tr&gt;

    &lt;/tbody&gt;
   &lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;Inventories consist of the following (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Raw materials&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;20,631&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;26,772&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Work-in-process&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,416&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,579&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Finished goods&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,489&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;683&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Supplies&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,641&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,620&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total inventories&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;29,177&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;30,654&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
  </us-gaap:InventoryDisclosureTextBlock>
    <nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763218">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Raw materials&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;20,631&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;26,772&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Work-in-process&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,416&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,579&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Finished goods&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,489&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;683&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Supplies&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,641&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,620&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total inventories&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;29,177&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;30,654&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;
   </nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014398"
      unitRef="USD">20631000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014399"
      unitRef="USD">26772000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014400"
      unitRef="USD">1416000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014401"
      unitRef="USD">1579000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014402"
      unitRef="USD">5489000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014403"
      unitRef="USD">683000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventorySuppliesNetOfReserves
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014404"
      unitRef="USD">1641000</us-gaap:InventorySuppliesNetOfReserves>
    <us-gaap:InventorySuppliesNetOfReserves
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70014405"
      unitRef="USD">1620000</us-gaap:InventorySuppliesNetOfReserves>
    <us-gaap:InventoryNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014406"
      unitRef="USD">29177000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014407"
      unitRef="USD">30654000</us-gaap:InventoryNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763219">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;6.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;PROPERTY AND EQUIPMENT:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Property and equipment, net consists of the following (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Land and improvements&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,773&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,480&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Buildings&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;47,663&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;44,251&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Machinery and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;127,679&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;115,237&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Equipment under finance lease&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,589&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,081&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;200,704&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;184,049&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less accumulated depreciation and amortization&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(96,684&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(86,244&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;104,020&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;97,805&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Construction in progress&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;6,164&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,826&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Property and equipment, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;110,184&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;99,631&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;All property and equipment is located in the United States, except for $20.3&#160;million and $19.8&#160;million of net property and equipment which is located in Mexico as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; December 2018, &lt;/em&gt;the Company sold its Monterrey, Mexico facility for net proceeds of $2.7&#160;million, resulting in a gain of $0.2&#160;million. In &lt;em style="font: inherit;"&gt; August 2018, &lt;/em&gt;the Company sold property in Houston, Texas for net proceeds of $5.8&#160;million, resulting in a gain of $2.8&#160;million.&lt;/p&gt;
  </us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763220">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Land and improvements&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,773&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;22,480&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Buildings&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;47,663&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;44,251&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Machinery and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;127,679&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;115,237&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Equipment under finance lease&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,589&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,081&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;200,704&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;184,049&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less accumulated depreciation and amortization&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(96,684&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(86,244&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;104,020&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;97,805&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Construction in progress&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;6,164&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,826&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Property and equipment, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;110,184&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;99,631&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember"
      decimals="-3"
      id="c70014418"
      unitRef="USD">22773000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-LandImprovementsMember"
      decimals="-4"
      id="c70014419"
      unitRef="USD">22480000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember"
      decimals="-3"
      id="c70014420"
      unitRef="USD">47663000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-BuildingMember"
      decimals="-3"
      id="c70014421"
      unitRef="USD">44251000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember"
      decimals="-3"
      id="c70014422"
      unitRef="USD">127679000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-MachineryAndEquipmentMember"
      decimals="-3"
      id="c70014423"
      unitRef="USD">115237000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember"
      decimals="-3"
      id="c70014424"
      unitRef="USD">2589000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-EquipmentUnderFinanceLeaseMember"
      decimals="-3"
      id="c70014425"
      unitRef="USD">2081000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014426"
      unitRef="USD">200704000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014427"
      unitRef="USD">184049000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014428"
      unitRef="USD">96684000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014429"
      unitRef="USD">86244000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70014430"
      unitRef="USD">104020000</nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress>
    <nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014431"
      unitRef="USD">97805000</nwpx:PropertyPlantAndEquipmentNetExcludingConstructionInProgress>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2020-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember"
      decimals="-3"
      id="c70014432"
      unitRef="USD">6164000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2019-12-31_PropertyPlantAndEquipmentByTypeAxis-ConstructionInProgressMember"
      decimals="-3"
      id="c70014433"
      unitRef="USD">1826000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014434"
      unitRef="USD">110184000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014435"
      unitRef="USD">99631000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2020-12-31_StatementGeographicalAxis-MX"
      decimals="-5"
      id="c70014409"
      unitRef="USD">20300000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i_2019-12-31_StatementGeographicalAxis-MX"
      decimals="-5"
      id="c70014410"
      unitRef="USD">19800000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember"
      decimals="-5"
      id="c70014414"
      unitRef="USD">2700000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember"
      decimals="-5"
      id="c70014415"
      unitRef="USD">200000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment
      contextRef="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember"
      decimals="-5"
      id="c70014416"
      unitRef="USD">5800000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment
      contextRef="d_2018-08-01_2018-08-31_PropertyPlantAndEquipmentByTypeAxis-PropertyInHoustonTexasMember"
      decimals="-5"
      id="c70014417"
      unitRef="USD">2800000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763221">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;7.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;GOODWILL AND &lt;/b&gt;&lt;b&gt;INTANGIBLE ASSETS:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Goodwill&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The changes in the carrying amount of goodwill for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; were as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill, December 31, 2019&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Acquisition of Geneva (Note 3)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill, December 31, 2020&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company performed its annual goodwill impairment test as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; utilizing a qualitative analysis, and did &lt;em style="font: inherit;"&gt;not&lt;/em&gt; identify any potential impairment.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Intangible Assets&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Intangible assets consist of the following (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Gross Carrying&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Accumulated&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Intangible&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amount&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amortization&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Assets, Net&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2020&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,409&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,634&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,775&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names and trademarks&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,225&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(720&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,505&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;329&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(91&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;238&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;12,963&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(2,445&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;10,518&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2019&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,378&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(827&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;551&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names and trademarks&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,132&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(452&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;680&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2,510&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,279&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,231&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;During the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; intangible assets increased primarily due to the acquisition of Geneva. See Note&#160;&lt;em style="font: inherit;"&gt;3,&lt;/em&gt; &#x201c;Business Combinations&#x201d; for additional information related to this transaction.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The estimated amortization expense for each of the next &lt;em style="font: inherit;"&gt;five&lt;/em&gt; years and thereafter is as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year ending December 31,&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,262&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,262&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,171&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2024&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,015&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2025&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,015&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Thereafter&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,793&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total amortization expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;10,518&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
  </us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763222">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill, December 31, 2019&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Acquisition of Geneva (Note 3)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Goodwill, December 31, 2020&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;22,985&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014447"
      unitRef="USD">0</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember"
      decimals="-3"
      id="c70014448"
      unitRef="USD">22985000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014449"
      unitRef="USD">22985000</us-gaap:Goodwill>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763223">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Gross Carrying&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Accumulated&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Intangible&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amount&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amortization&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Assets, Net&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2020&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,409&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,634&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,775&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names and trademarks&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,225&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(720&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,505&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;329&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(91&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;238&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;12,963&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(2,445&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;10,518&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2019&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Customer relationships&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,378&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(827&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;551&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Trade names and trademarks&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,132&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(452&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;680&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;2,510&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,279&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,231&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014451"
      unitRef="USD">9409000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014452"
      unitRef="USD">1634000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014453"
      unitRef="USD">7775000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-3"
      id="c70014454"
      unitRef="USD">3225000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-4"
      id="c70014455"
      unitRef="USD">720000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-3"
      id="c70014456"
      unitRef="USD">2505000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember"
      decimals="-3"
      id="c70014457"
      unitRef="USD">329000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember"
      decimals="-3"
      id="c70014458"
      unitRef="USD">91000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-OtherIntangibleAssetsMember"
      decimals="-3"
      id="c70014459"
      unitRef="USD">238000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014460"
      unitRef="USD">12963000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014461"
      unitRef="USD">2445000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014462"
      unitRef="USD">10518000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014464"
      unitRef="USD">1378000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014465"
      unitRef="USD">827000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-CustomerRelationshipsMember"
      decimals="-3"
      id="c70014466"
      unitRef="USD">551000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-3"
      id="c70014467"
      unitRef="USD">1132000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-3"
      id="c70014468"
      unitRef="USD">452000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2019-12-31_FiniteLivedIntangibleAssetsByMajorClassAxis-TrademarksAndTradeNamesMember"
      decimals="-4"
      id="c70014469"
      unitRef="USD">680000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70014470"
      unitRef="USD">2510000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014471"
      unitRef="USD">1279000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014472"
      unitRef="USD">1231000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763224">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year ending December 31,&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,262&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,262&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,171&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2024&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,015&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2025&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,015&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Thereafter&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,793&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total amortization expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;10,518&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014473"
      unitRef="USD">1262000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014474"
      unitRef="USD">1262000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014475"
      unitRef="USD">1171000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014476"
      unitRef="USD">1015000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014477"
      unitRef="USD">1015000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014478"
      unitRef="USD">4793000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014479"
      unitRef="USD">10518000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:DebtDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763225">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;8.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;LINE OF CREDIT&lt;/b&gt;&lt;b&gt;&#160;AND LONG-TERM DEBT&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company&#x2019;s Credit Agreement with Wells Fargo Bank, N.A. (&#x201c;Wells Fargo&#x201d;) dated &lt;em style="font: inherit;"&gt; October&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;25,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; (&#x201c;Credit Agreement&#x201d;), as amended on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; by the Consent and Amendment &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; to Credit Agreement with Wells Fargo (collectively the &#x201c;Amended Credit Agreement&#x201d;) provides for a term loan, as well as letters of credit and revolving loans in the aggregate amount of up to $74&#160;million, subject to a borrowing base (&#x201c;Revolver Commitment&#x201d;). The borrowing base is calculated by applying various advance rates to eligible accounts receivable, contract assets, inventories, and equipment, subject to various exclusions, adjustments, and sublimits. The Amended Credit Agreement will expire on &lt;em style="font: inherit;"&gt; October&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;25,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2024.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Amended Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants, events of default, and indemnification provisions in favor of the lender. The negative covenants include restrictions regarding the incurrence of liens and indebtedness and certain acquisitions and dispositions of assets and other matters, all subject to certain exceptions. The Amended Credit Agreement also requires the Company to regularly provide financial information to Wells Fargo and to maintain a Senior Leverage Ratio (as defined in the Amended Credit Agreement) &lt;em style="font: inherit;"&gt;not&lt;/em&gt; greater than 3.00 and a Fixed Charge Coverage Ratio (as defined in the Amended Credit Agreement) of at least 1.10 to &lt;em style="font: inherit;"&gt;1.00.&lt;/em&gt; The Company was in compliance&#160;with its financial covenants as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company's obligations under the Amended Credit Agreement are secured by a security interest in certain real property owned by the Company and its subsidiaries and substantially all of Company&#x2019;s and its subsidiaries&#x2019; other assets.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Interest expense from revolving loan borrowings, long-term debt, and finance leases was $0.9&#160;million, net of amounts capitalized of $0.1&#160;million in &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; $0.5&#160;million in &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and $0.6&#160;million in &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; A nominal amount of interest was capitalized in &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Line of Credit (Revolving Loan)&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company had no outstanding revolving loan borrowings and $1.6&#160;million of outstanding letters of credit under the Amended Credit Agreement and additional revolving loan borrowing capacity of $53&#160;million. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the Company had no outstanding borrowings under the Credit Agreement. Revolving loan borrowings under the Amended Credit Agreement bear interest at rates related to the daily &lt;em style="font: inherit;"&gt;three&lt;/em&gt; month LIBOR plus 1.5% to 2.0%. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the weighted-average interest rate for outstanding revolving loan borrowings was 1.73% and 3.43% respectively. The Amended Credit Agreement provides a mechanism for determining an alternative benchmark rate to the LIBOR, which &lt;em style="font: inherit;"&gt; may &lt;/em&gt;include the Secured Overnight Financing Rate. The Amended Credit Agreement requires the payment of an unused line fee of between 0.25% and 0.375%, based on the amount by which the Revolver Commitment exceeds the average daily balance of outstanding borrowings (as defined in the Amended Credit Agreement) during any month. Such fee is payable monthly in arrears.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Long-Term Debt&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Pursuant to the Amended Credit Agreement, on &lt;em style="font: inherit;"&gt; March&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company entered into a term loan for $15.9&#160;million with Wells Fargo that matures on &lt;em style="font: inherit;"&gt; October&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;25,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2024&lt;/em&gt; and bears interest at the daily &lt;em style="font: inherit;"&gt;three&lt;/em&gt; month LIBOR plus 2.0% to 2.5%. The term loan requires monthly principal payments of $0.3&#160;million plus accrued interest. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the outstanding balance of the term loan was $13.8&#160;million. The Company is obligated to prepay the term loan to the extent that the outstanding principal balance at any time exceeds 60% of the fair market value of specified real property securing the loan. The Company is also obligated to prepay the term loan in an amount equal to 20% of Excess Cash Flow (as defined in the Amended Credit Agreement). The prepayment from Excess Cash Flow generated in &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; that is required in &lt;em style="font: inherit;"&gt;2021&lt;/em&gt; is $4.6 million. Subject to certain limitations, the Company &lt;em style="font: inherit;"&gt; may &lt;/em&gt;also voluntarily prepay all or a portion of the loan balance upon &lt;em style="font: inherit;"&gt;ten&lt;/em&gt; business days&#x2019; written notice.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Future principal payments of long-term debt, which excludes prepayments for periods beyond &lt;em style="font: inherit;"&gt;2021&lt;/em&gt; that &lt;em style="font: inherit;"&gt; may &lt;/em&gt;be required by Excess Cash Flow (as defined in the Amended Credit Agreement), are as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year ending December 31,&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,746&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,176&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,840&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total future principal payments&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;13,762&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less: Unamortized debt issuance costs&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(173&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less: Current portion of long-term debt&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(7,701&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Long-term debt, net of current portion&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,888&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
  </us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="i_2018-10-25_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-6"
      id="c70014487"
      unitRef="USD">74000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <nwpx:MaximumSeniorLeverageRatio
      contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="INF"
      id="c70014491"
      unitRef="Pure">3.00</nwpx:MaximumSeniorLeverageRatio>
    <nwpx:MinimumFixedChargeCoverageRatio
      contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="INF"
      id="c70014492"
      unitRef="Pure">1.10</nwpx:MinimumFixedChargeCoverageRatio>
    <nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014496"
      unitRef="USD">900000</nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized>
    <us-gaap:InterestCostsCapitalized
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014497"
      unitRef="USD">100000</us-gaap:InterestCostsCapitalized>
    <nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-5"
      id="c70014499"
      unitRef="USD">500000</nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized>
    <nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014501"
      unitRef="USD">600000</nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized>
    <us-gaap:LineOfCredit
      contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014508"
      unitRef="USD">0</us-gaap:LineOfCredit>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i_2020-12-31_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-5"
      id="c70014509"
      unitRef="USD">1600000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity
      contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-6"
      id="c70014510"
      unitRef="USD">53000000</us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity>
    <us-gaap:LineOfCredit
      contextRef="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014513"
      unitRef="USD">0</us-gaap:LineOfCredit>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"
      decimals="3"
      id="c70014515"
      unitRef="Pure">0.015</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"
      decimals="2"
      id="c70014516"
      unitRef="Pure">0.020</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="i_2020-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="4"
      id="c70014520"
      unitRef="Pure">0.0173</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:DebtWeightedAverageInterestRate
      contextRef="i_2019-12-31_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="4"
      id="c70014521"
      unitRef="Pure">0.0343</us-gaap:DebtWeightedAverageInterestRate>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember"
      decimals="4"
      id="c70014522"
      unitRef="Pure">0.0025</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="d_2018-10-25_2018-10-25_CreditFacilityAxis-RevolvingCreditFacilityMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember"
      decimals="5"
      id="c70014523"
      unitRef="Pure">0.00375</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="i_2020-03-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-5"
      id="c70014526"
      unitRef="USD">15900000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MinimumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"
      decimals="2"
      id="c70014530"
      unitRef="Pure">0.020</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember_RangeAxis-MaximumMember_VariableRateAxis-LondonInterbankOfferedRateLIBORMember"
      decimals="3"
      id="c70014531"
      unitRef="Pure">0.025</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentPeriodicPayment
      contextRef="d_2020-01-01_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-5"
      id="c70014532"
      unitRef="USD">300000</us-gaap:DebtInstrumentPeriodicPayment>
    <us-gaap:LongTermDebt
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-5"
      id="c70014535"
      unitRef="USD">13800000</us-gaap:LongTermDebt>
    <nwpx:DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="1"
      id="c70014536"
      unitRef="Pure">0.60</nwpx:DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty>
    <nwpx:DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="1"
      id="c70014537"
      unitRef="Pure">0.20</nwpx:DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow>
    <nwpx:DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-5"
      id="c70014540"
      unitRef="USD">4600000</nwpx:DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763226">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year ending December 31,&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;7,746&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,176&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,840&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total future principal payments&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;13,762&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less: Unamortized debt issuance costs&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(173&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Less: Current portion of long-term debt&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(7,701&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 84%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Long-term debt, net of current portion&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,888&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014543"
      unitRef="USD">7746000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014544"
      unitRef="USD">3176000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-4"
      id="c70014545"
      unitRef="USD">2840000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:DebtInstrumentCarryingAmount
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014546"
      unitRef="USD">13762000</us-gaap:DebtInstrumentCarryingAmount>
    <us-gaap:DeferredFinanceCostsNet
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014547"
      unitRef="USD">173000</us-gaap:DeferredFinanceCostsNet>
    <us-gaap:LongTermDebtCurrent
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014548"
      unitRef="USD">7701000</us-gaap:LongTermDebtCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember"
      decimals="-3"
      id="c70014549"
      unitRef="USD">5888000</us-gaap:LongTermDebtNoncurrent>
    <nwpx:LesseeLeaseDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763227">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;9.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;b&gt;LEASES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company adopted ASC Topic&#160;&lt;em style="font: inherit;"&gt;842,&lt;/em&gt; &#x201c;Leases&#x201d; (&#x201c;Topic&#160;&lt;em style="font: inherit;"&gt;842&#x201d;&lt;/em&gt;) on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; using the modified retrospective transition method which allowed it to continue to apply legacy guidance for periods prior to &lt;em style="font: inherit;"&gt;2019.&lt;/em&gt; The Company elected the package of transition practical expedients which, among other things, allowed it to keep the historical lease classifications and &lt;em style="font: inherit;"&gt;not&lt;/em&gt; reassess the lease classification for any existing leases as of the date of adoption. The Company also made an accounting policy election to apply the short-term lease exception, which allows it to keep leases with an initial term of &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months or less off the balance sheet. Upon adoption of Topic&#160;&lt;em style="font: inherit;"&gt;842,&lt;/em&gt; the Company recognized right-of-use assets and lease liabilities for operating leases of approximately $8.0&#160;million.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has entered into various equipment and property leases. Certain lease agreements include renewals and/or purchase options set to expire at various dates, and certain lease agreements include rental payments adjusted periodically for inflation. The Company&#x2019;s lease agreements do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; contain any material residual value guarantees or material restrictive covenants.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company determines if an arrangement is a lease at inception. Leases with an initial term of &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months or less are &lt;em style="font: inherit;"&gt;not&lt;/em&gt; recorded on the balance sheet; costs for these leases are recognized on a straight-line basis over the lease term. Right-of-use assets and lease liabilities are recognized based on the present value of lease payments over the lease term at commencement date. Because most of the Company's leases do &lt;em style="font: inherit;"&gt;not&lt;/em&gt; provide an implicit rate of return, the Company uses its asset-based lending rate in determining the present value of lease payments. Some of the Company&#x2019;s lease agreements contain non-lease components, which are accounted for separately.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes the Company's leases recorded on the Consolidated Balance Sheets (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases, net, included in Property and equipment &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,288&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,203&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,813&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7,683&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;32,101&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;8,886&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Lease liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,729&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,641&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,115&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7,889&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;31,844&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,530&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;(&lt;em style="font: inherit;"&gt;1&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;Finance lease right-of-use assets are presented net of accumulated amortization of $1.3&#160;million and $0.9&#160;million as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;Lease cost consists of the following (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Finance lease cost:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Amortization of right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;422&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;435&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Interest on lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;57&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Operating lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,647&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,934&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Short-term lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;745&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,442&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Variable lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;199&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;141&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,092&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,009&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As the Company has &lt;em style="font: inherit;"&gt;not&lt;/em&gt; restated prior-year information for the adoption of Topic&#160;&lt;em style="font: inherit;"&gt;842,&lt;/em&gt; total operating lease rental expense under ASC&#160;Topic&#160;&lt;em style="font: inherit;"&gt;840,&lt;/em&gt; &#x201c;Leases&#x201d; for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; was $2.7&#160;million.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;The future maturities of lease liabilities as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; are as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Finance Leases&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Operating Leases&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;454&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,178&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,819&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;230&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,561&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2024&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;544&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,416&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2025&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;301&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,358&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Thereafter&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;27,513&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Total lease payments&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,962&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;40,845&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Amount representing interest&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(233&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(10,730&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Present value of lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,729&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;30,115&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Current portion of lease liabilities &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(375&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(2,204&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Long-term lease liabilities &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(2)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,354&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;27,911&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;(&lt;em style="font: inherit;"&gt;1&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;Current portion of finance lease liabilities are included in Accrued liabilities.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="margin: 0; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;(&lt;em style="font: inherit;"&gt;2&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;The following table summarizes the lease terms and discount rates for the lease liabilities:&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Weighted-average remaining lease term (years)&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.67&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;18.21&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8.31&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Weighted-average discount rate&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5.22&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5.40&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.36&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4.50&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;The following table presents other information related to the operating and finance leases (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px; margin-left: 0pt; margin-right: 0pt;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating cash flows from finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(57&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating cash flows from operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,481&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,909&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financing cash flows from finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(420&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(434&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets obtained in exchange for finance lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;507&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;819&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets obtained in exchange for operating lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,471&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,335&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
  </nwpx:LesseeLeaseDisclosureTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i_2019-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201602Member"
      decimals="-6"
      id="c70014559"
      unitRef="USD">8000000.0</us-gaap:OperatingLeaseRightOfUseAsset>
    <nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763228">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases, net, included in Property and equipment &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,288&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,203&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,813&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7,683&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;32,101&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;8,886&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Lease liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,729&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,641&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,115&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7,889&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;31,844&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;9,530&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember"
      decimals="-3"
      id="c70014584"
      unitRef="USD">1288000</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-PropertyAndEquipmentMember"
      decimals="-3"
      id="c70014585"
      unitRef="USD">1203000</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014586"
      unitRef="USD">30813000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014587"
      unitRef="USD">7683000</us-gaap:OperatingLeaseRightOfUseAsset>
    <nwpx:LeaseRightOfUseAsset
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014588"
      unitRef="USD">32101000</nwpx:LeaseRightOfUseAsset>
    <nwpx:LeaseRightOfUseAsset
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014589"
      unitRef="USD">8886000</nwpx:LeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseLiability
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014591"
      unitRef="USD">1729000</us-gaap:FinanceLeaseLiability>
    <us-gaap:FinanceLeaseLiability
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014592"
      unitRef="USD">1641000</us-gaap:FinanceLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014593"
      unitRef="USD">30115000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014594"
      unitRef="USD">7889000</us-gaap:OperatingLeaseLiability>
    <nwpx:LeaseLiability
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014595"
      unitRef="USD">31844000</nwpx:LeaseLiability>
    <nwpx:LeaseLiability
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70014596"
      unitRef="USD">9530000</nwpx:LeaseLiability>
    <us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization
      contextRef="i_2020-12-31"
      decimals="-5"
      id="c70014567"
      unitRef="USD">1300000</us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization
      contextRef="i_2019-12-31"
      decimals="-5"
      id="c70014568"
      unitRef="USD">900000</us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization>
    <us-gaap:LeaseCostTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763229">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Finance lease cost:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Amortization of right-of-use assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;422&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;435&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Interest on lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;57&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Operating lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,647&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,934&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Short-term lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;745&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,442&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Variable lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;199&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;141&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total lease cost&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,092&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,009&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:LeaseCostTableTextBlock>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014598"
      unitRef="USD">422000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014599"
      unitRef="USD">435000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014600"
      unitRef="USD">79000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014601"
      unitRef="USD">57000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:OperatingLeaseCost
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014602"
      unitRef="USD">3647000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014603"
      unitRef="USD">1934000</us-gaap:OperatingLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014604"
      unitRef="USD">745000</us-gaap:ShortTermLeaseCost>
    <us-gaap:ShortTermLeaseCost
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014605"
      unitRef="USD">1442000</us-gaap:ShortTermLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014606"
      unitRef="USD">199000</us-gaap:VariableLeaseCost>
    <us-gaap:VariableLeaseCost
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014607"
      unitRef="USD">141000</us-gaap:VariableLeaseCost>
    <us-gaap:LeaseCost
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014608"
      unitRef="USD">5092000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014609"
      unitRef="USD">4009000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014577"
      unitRef="USD">2700000</us-gaap:OperatingLeasesRentExpenseNet>
    <nwpx:LesseeLiabilityMaturityTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763230">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Finance Leases&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Operating Leases&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2021&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;454&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,178&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2022&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,819&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2023&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;230&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,561&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2024&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;544&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,416&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;2025&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;301&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,358&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Thereafter&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;27,513&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Total lease payments&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,962&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;40,845&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Amount representing interest&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(233&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(10,730&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Present value of lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,729&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;30,115&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Current portion of lease liabilities &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(1)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(375&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(2,204&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Long-term lease liabilities &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(2)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,354&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;27,911&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:LesseeLiabilityMaturityTableTextBlock>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014610"
      unitRef="USD">454000</us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014611"
      unitRef="USD">3178000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014612"
      unitRef="USD">433000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014613"
      unitRef="USD">2819000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70014614"
      unitRef="USD">230000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014615"
      unitRef="USD">2561000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014616"
      unitRef="USD">544000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014617"
      unitRef="USD">2416000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014618"
      unitRef="USD">301000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014619"
      unitRef="USD">2358000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014620"
      unitRef="USD">0</us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014621"
      unitRef="USD">27513000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014622"
      unitRef="USD">1962000</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014623"
      unitRef="USD">40845000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014624"
      unitRef="USD">233000</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70014625"
      unitRef="USD">10730000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiability
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014626"
      unitRef="USD">1729000</us-gaap:FinanceLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014627"
      unitRef="USD">30115000</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014628"
      unitRef="USD">375000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014629"
      unitRef="USD">2204000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014630"
      unitRef="USD">1354000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014631"
      unitRef="USD">27911000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <nwpx:LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763231">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Weighted-average remaining lease term (years)&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.67&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;18.21&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;8.31&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Weighted-average discount rate&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5.22&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5.40&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3.36&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4.50&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2020-12-31" id="c70014633">P3Y8M1D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2019-12-31" id="c70014634">P3Y9M14D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2020-12-31" id="c70014635">P18Y2M15D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="i_2019-12-31" id="c70014636">P8Y3M21D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i_2020-12-31"
      decimals="4"
      id="c70014638"
      unitRef="Pure">0.0522</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="i_2019-12-31"
      decimals="3"
      id="c70014639"
      unitRef="Pure">0.0540</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i_2020-12-31"
      decimals="4"
      id="c70014640"
      unitRef="Pure">0.0336</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i_2019-12-31"
      decimals="3"
      id="c70014641"
      unitRef="Pure">0.0450</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <nwpx:OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763232">
    &lt;table cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px; margin-left: 0pt; margin-right: 0pt;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Cash paid for amounts included in the measurement of lease liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating cash flows from finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(79&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(57&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Operating cash flows from operating leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,481&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,909&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financing cash flows from finance leases&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(420&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(434&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets obtained in exchange for finance lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;507&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;819&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Right-of-use assets obtained in exchange for operating lease liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,471&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,335&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014643"
      unitRef="USD">79000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:FinanceLeaseInterestPaymentOnLiability
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014644"
      unitRef="USD">57000</us-gaap:FinanceLeaseInterestPaymentOnLiability>
    <us-gaap:OperatingLeasePayments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014645"
      unitRef="USD">3481000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014646"
      unitRef="USD">1909000</us-gaap:OperatingLeasePayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70014647"
      unitRef="USD">420000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:FinanceLeasePrincipalPayments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014648"
      unitRef="USD">434000</us-gaap:FinanceLeasePrincipalPayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014649"
      unitRef="USD">507000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014650"
      unitRef="USD">819000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014651"
      unitRef="USD">4471000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014652"
      unitRef="USD">1335000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763233">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;10.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;FAIR VALUE MEASUREMENTS:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into &lt;em style="font: inherit;"&gt;three&lt;/em&gt; broad levels. These levels are: Level&#160;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; (inputs are quoted prices in active markets for identical assets or liabilities); Level&#160;&lt;em style="font: inherit;"&gt;2&lt;/em&gt; (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level&#160;&lt;em style="font: inherit;"&gt;3&lt;/em&gt; (inputs are unobservable, with little or &lt;em style="font: inherit;"&gt;no&lt;/em&gt; market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes information regarding the Company&#x2019;s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&#160;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 1&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 2&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 3&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;As of December 31, 2020&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred compensation plan&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,717&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;3,884&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;833&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2019&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred compensation plan&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,268&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;882&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level&#160;&lt;em style="font: inherit;"&gt;1&lt;/em&gt; within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level&#160;&lt;em style="font: inherit;"&gt;2&lt;/em&gt; within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Consolidated Balance Sheets.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company&#x2019;s foreign currency forward contracts are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level&#160;&lt;em style="font: inherit;"&gt;2&lt;/em&gt; within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. Foreign currency forward contracts are presented at their gross fair values. Foreign currency forward contract assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Consolidated Balance Sheets.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and revolving loan borrowings approximate fair value due to the short-term nature of these instruments. The Company is obligated to repay the carrying value of the Company&#x2019;s long-term debt. The fair value of the Company&#x2019;s long-term debt is calculated using interest rates for the Company&#x2019;s existing debt arrangements which are classified as Level&#160;&lt;em style="font: inherit;"&gt;2&lt;/em&gt; inputs within the fair value hierarchy. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the fair value of the Company&#x2019;s long-term debt approximates the carrying value as the borrowings bear interest based on current market rates.&lt;/p&gt;
  </us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763234">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&#160;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 1&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 2&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Level 3&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;As of December 31, 2020&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred compensation plan&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,717&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;3,884&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;833&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;As of December 31, 2019&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Deferred compensation plan&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;5,150&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,268&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;882&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Financial liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Foreign currency forward contracts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(138&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014672"
      unitRef="USD">4717000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"
      decimals="-3"
      id="c70014673"
      unitRef="USD">3884000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"
      decimals="-3"
      id="c70014674"
      unitRef="USD">833000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"
      decimals="-3"
      id="c70014675"
      unitRef="USD">0</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70014677"
      unitRef="USD">1150000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"
      decimals="-3"
      id="c70014678"
      unitRef="USD">-0</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"
      decimals="-4"
      id="c70014679"
      unitRef="USD">1150000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2020-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"
      decimals="-3"
      id="c70014680"
      unitRef="USD">-0</us-gaap:DerivativeLiabilities>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70014683"
      unitRef="USD">5150000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"
      decimals="-3"
      id="c70014684"
      unitRef="USD">4268000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"
      decimals="-3"
      id="c70014685"
      unitRef="USD">882000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"
      decimals="-3"
      id="c70014686"
      unitRef="USD">0</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70014688"
      unitRef="USD">138000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel1Member"
      decimals="-3"
      id="c70014689"
      unitRef="USD">-0</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel2Member"
      decimals="-3"
      id="c70014690"
      unitRef="USD">138000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities
      contextRef="i_2019-12-31_FairValueByFairValueHierarchyLevelAxis-FairValueInputsLevel3Member"
      decimals="-3"
      id="c70014691"
      unitRef="USD">-0</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763235">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;11.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;DERIVATIVE INSTRUMENTS AND HEDGING ACTIVITIES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;For each foreign currency forward contract entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument&#x2019;s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all foreign currency forward contracts to specific firm commitments or forecasted transactions and designating the foreign currency forward contracts as cash flow hedges. The Company also formally assesses, both at the hedge&#x2019;s inception and on an ongoing basis, whether the foreign currency forward contracts that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Consolidated Statements of Comprehensive Income. If it is determined that a foreign currency forward contract is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that foreign currency forward contract prospectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the total notional amount of the foreign currency forward contracts designated as cash flow hedges was $15.3&#160;million (&lt;span style="-sec-ix-hidden:c70014698"&gt;CAD$19.5&lt;/span&gt;&#160;million) and $6.1&#160;million (&lt;span style="-sec-ix-hidden:c70014700"&gt;CAD$7.9&lt;/span&gt;&#160;million), respectively. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company's foreign currency forward contracts mature at various dates through &lt;em style="font: inherit;"&gt; May 2022 &lt;/em&gt;and are subject to an enforceable master netting arrangement.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; all foreign currency forward contracts were designated as cash flow hedges. For the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; gains (losses) recognized in Net sales from foreign currency forward contracts &lt;em style="font: inherit;"&gt;not&lt;/em&gt; designated as hedging instruments were $(0.6)&#160;million, $(0.1)&#160;million, and $0.2&#160;million, respectively. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; unrealized pretax losses on outstanding foreign currency forward contracts in Accumulated other comprehensive loss was $(0.1)&#160;million, of which approximately $0 is expected to be reclassified to Net sales within the next &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months as a result of underlying hedged transactions also being recorded in Net sales. See Note&#160;&lt;em style="font: inherit;"&gt;17,&lt;/em&gt; &#x201c;Accumulated Other Comprehensive Loss&#x201d; for additional quantitative information regarding foreign currency forward contract gains and losses.&lt;/p&gt;
  </us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:DerivativeNotionalAmount
      contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"
      decimals="-5"
      id="c70014697"
      unitRef="USD">15300000</us-gaap:DerivativeNotionalAmount>
    <us-gaap:DerivativeNotionalAmount
      contextRef="i_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-DesignatedAsHedgingInstrumentMember"
      decimals="-5"
      id="c70014699"
      unitRef="USD">6100000</us-gaap:DerivativeNotionalAmount>
    <us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet
      contextRef="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"
      decimals="-5"
      id="c70014711"
      unitRef="USD">-600000</us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet>
    <us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet
      contextRef="d_2019-01-01_2019-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"
      decimals="-5"
      id="c70014712"
      unitRef="USD">-100000</us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet>
    <us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet
      contextRef="d_2018-01-01_2018-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember_HedgingDesignationAxis-NondesignatedMember"
      decimals="-5"
      id="c70014713"
      unitRef="USD">200000</us-gaap:DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet>
    <us-gaap:UnrealizedLossOnForeignCurrencyDerivativesBeforeTax
      contextRef="d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember"
      decimals="-5"
      id="c70014716"
      unitRef="USD">100000</us-gaap:UnrealizedLossOnForeignCurrencyDerivativesBeforeTax>
    <us-gaap:ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months
      contextRef="i_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember"
      decimals="-3"
      id="c70014717"
      unitRef="USD">0</us-gaap:ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763236">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;12.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;RETIREMENT PLANS:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Defined Contribution Plan&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has a defined contribution retirement plan that covers substantially all of its employees and provides for a Company match of up to 50% of the &lt;em style="font: inherit;"&gt;first&lt;/em&gt; 8%, 6%, and 6% of employee contributions to the plan, subject to certain limitations, for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; respectively. The defined contribution retirement plan offers 23&#160;investment options.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Defined Benefit Plans&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has &lt;span style="-sec-ix-hidden:c70014736"&gt;two&lt;/span&gt; noncontributory defined benefit plans. Effective &lt;em style="font: inherit;"&gt;2001,&lt;/em&gt; both plans were frozen and participants were fully vested in their accrued benefits as of the date each plan was frozen. &lt;em style="font: inherit;"&gt;No&lt;/em&gt; additional participants can be added to the plans and &lt;em style="font: inherit;"&gt;no&lt;/em&gt; additional service can be earned by participants subsequent to the date the plans were frozen. The funding policy for both of these plans is based on current plan costs plus amortization of the unfunded plan liability. All current employees covered by these plans are now covered by the defined contribution retirement plan.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the Company had recorded, in accordance with the actuarial valuations, an accrued pension liability of $1.6&#160;million in Other long-term liabilities and an unrecognized actuarial loss, net of tax, of $1.8&#160;million&#160;in Accumulated other comprehensive loss. Additionally, as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the projected and accumulated benefit obligation was $6.5&#160;million and $6.4&#160;million, respectively, and the fair value of plan assets was $4.9&#160;million and $4.8&#160;million, respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The net periodic benefit cost for each of the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; was approximately&#160;$0. The weighted-average discount rates used to measure the projected benefit obligation were 2.04% and 2.83% as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The plan assets are invested in pooled separate accounts stated at fair value based on the daily net asset value of the account and are therefore &lt;em style="font: inherit;"&gt;not&lt;/em&gt; categorized in the fair value hierarchy. The expected weighted-average long-term rate of return on plan assets was 7.0% and 7.5% as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Non-qualified Retirement Savings Plan&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has a deferred compensation plan that covered officers and selected highly compensated employees until it was frozen in &lt;em style="font: inherit;"&gt;2016.&lt;/em&gt; The deferred compensation plan generally matched up to 50% of the &lt;em style="font: inherit;"&gt;first&lt;/em&gt; $10,000 of officer contributions to the plan and the &lt;em style="font: inherit;"&gt;first&lt;/em&gt; $5,000 of other selected highly compensated employee contributions, subject to certain limitations. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; deferred compensation plan balances of $4.7&#160;million and $5.2&#160;million, respectively, were recorded in Other assets and Other long-term liabilities.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Total expense for all retirement plans for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; was $1.6&#160;million, $1.2&#160;million, and $0.9&#160;million, respectively.&lt;/p&gt;
  </us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <nwpx:CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="1"
      id="c70014725"
      unitRef="Pure">0.50</nwpx:CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions>
    <nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="2"
      id="c70014727"
      unitRef="Pure">0.08</nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent>
    <nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent
      contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="2"
      id="c70014728"
      unitRef="Pure">0.06</nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent>
    <nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent
      contextRef="d_2018-01-01_2018-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="2"
      id="c70014729"
      unitRef="Pure">0.06</nwpx:EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent>
    <nwpx:DefinedContributionPlanNumberOfInvestmentOptions
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-DefinedContributionPlanMember"
      decimals="INF"
      id="c70014734"
      unitRef="Pure">23</nwpx:DefinedContributionPlanNumberOfInvestmentOptions>
    <us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014743"
      unitRef="USD">1600000</us-gaap:PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent>
    <nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014745"
      unitRef="USD">1800000</nwpx:AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax>
    <us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014750"
      unitRef="USD">6500000</us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation>
    <us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation
      contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014751"
      unitRef="USD">6400000</us-gaap:DefinedBenefitPlanAccumulatedBenefitObligation>
    <us-gaap:DefinedBenefitPlanFairValueOfPlanAssets
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014752"
      unitRef="USD">4900000</us-gaap:DefinedBenefitPlanFairValueOfPlanAssets>
    <us-gaap:DefinedBenefitPlanFairValueOfPlanAssets
      contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-5"
      id="c70014753"
      unitRef="USD">4800000</us-gaap:DefinedBenefitPlanFairValueOfPlanAssets>
    <us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="-3"
      id="c70014758"
      unitRef="USD">0</us-gaap:DefinedBenefitPlanNetPeriodicBenefitCost>
    <us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
      contextRef="i_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="4"
      id="c70014761"
      unitRef="Pure">0.0204</us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate>
    <us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate
      contextRef="i_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="4"
      id="c70014762"
      unitRef="Pure">0.0283</us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate>
    <us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="2"
      id="c70014767"
      unitRef="Pure">0.070</us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets>
    <us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets
      contextRef="d_2019-01-01_2019-12-31_RetirementPlanTypeAxis-PensionPlansDefinedBenefitMember"
      decimals="3"
      id="c70014768"
      unitRef="Pure">0.075</us-gaap:DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets>
    <nwpx:CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="1"
      id="c70014773"
      unitRef="Pure">0.50</nwpx:CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions>
    <nwpx:OfficerContributionForWhichCompanyWillMatchAtFiftyPercent
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="INF"
      id="c70014776"
      unitRef="USD">10000</nwpx:OfficerContributionForWhichCompanyWillMatchAtFiftyPercent>
    <nwpx:SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent
      contextRef="d_2020-01-01_2020-12-31_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="INF"
      id="c70014780"
      unitRef="USD">5000</nwpx:SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent>
    <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="-5"
      id="c70014784"
      unitRef="USD">4700000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
    <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherLongtermLiabilitiesMember_RetirementPlanTypeAxis-NonqualifiedRetirementSavingsPlanMember"
      decimals="-5"
      id="c70014785"
      unitRef="USD">5200000</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
    <nwpx:RetirementPlanExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014790"
      unitRef="USD">1600000</nwpx:RetirementPlanExpense>
    <nwpx:RetirementPlanExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-5"
      id="c70014791"
      unitRef="USD">1200000</nwpx:RetirementPlanExpense>
    <nwpx:RetirementPlanExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014792"
      unitRef="USD">900000</nwpx:RetirementPlanExpense>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763237">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;13.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;SHARE-BASED COMPENSATION:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has &lt;span style="-sec-ix-hidden:c70014794"&gt;one&lt;/span&gt; active stock incentive plan for employees and directors, the &lt;em style="font: inherit;"&gt;2007&lt;/em&gt; Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, RSUs, and PSAs.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes share-based compensation expense recorded (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Cost of sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;822&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;383&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;12&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Selling, general, and administrative expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,266&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,326&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;269&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;3,088&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,709&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;281&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;There were 354,022&#160;shares of common stock available for future issuance under the Company&#x2019;s stock incentive plan as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; assuming the outstanding PSAs vest at the target level of 100%.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Stock Options Awards&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company&#x2019;s stock incentive plan&#160;provides that options become exercisable according to vesting schedules, which range from immediate to ratably over a 60-month period. Options terminate &lt;span style="-sec-ix-hidden:c70014802"&gt;ten&lt;/span&gt; years from the date of grant. There were no options granted during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; During the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; 24,000 stock options at a weighted-average exercise price of $24.15 were exercised. The total intrinsic value of options exercised during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; was $0.1&#160;million. There were no options exercised during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; there were no stock options outstanding.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Restricted Stock Units and Performance Share Awards&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company&#x2019;s stock incentive plan&#160;provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares over a specified period of time. RSUs are service-based awards and vest according to vesting schedules, which range from immediate to ratably over a &lt;span style="-sec-ix-hidden:c70014825"&gt;three&lt;/span&gt;-year period. PSAs are service-based awards that vest according to the terms of the grant and have performance-based payout conditions.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes the Company&#x2019;s RSU and PSA activity:&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Number of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;RSUs and&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;PSAs &lt;/b&gt;&lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;&lt;b&gt;(1)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Weighted-&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Average Grant&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Date Fair&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Value&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unvested RSUs and PSAs as of December 31, 2019&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;85,170&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;RSUs and PSAs granted&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;97,834&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;26.61&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Unvested RSUs and PSAs canceled&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,752&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;RSUs and PSAs vested &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(2)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(49,680&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unvested RSUs and PSAs as of December 31, 2020&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;129,572&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;25.86&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;(&lt;em style="font: inherit;"&gt;1&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;The number of PSAs disclosed in this table are at the target level of 100%.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="margin: 0; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 18pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 18pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;(&lt;em style="font: inherit;"&gt;2&lt;/em&gt;)&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;For the PSAs vested on &lt;em style="font: inherit;"&gt; March&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020;&lt;/em&gt; the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of 136%,&#160;based on the performance-based conditions achieved.&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The unvested balance of RSUs and PSAs as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; includes approximately&#160;91,000&#160;PSAs at a target level of performance. The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from 0% to 200%.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The weighted-average grant date fair value of RSUs granted during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019&lt;/em&gt; was $26.61 and $23.56, respectively. The weighted-average grant date fair value of PSAs granted during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; were $26.61, $23.56 and $19.97, respectively. There were no RSUs granted during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; The total fair value of RSUs and PSAs vested during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; was $2.0&#160;million, $0, and $1.6&#160;million, respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; unrecognized compensation expense related to the unvested portion of the Company&#x2019;s RSUs and PSAs was $2.5&#160;million, which is expected to be recognized over a weighted-average period of 1.6&#160;years.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Stock Awards&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;For the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; stock awards of 17,442&#160;shares, 11,924&#160;shares, and 11,172&#160;shares, respectively, were granted to non-employee directors, which vested immediately upon issuance. The Company recorded compensation expense based on the weighted-average fair market value per share of the awards on the grant date of $25.81 in &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; $25.16 in &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and $21.48 in &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

  </us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763238">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Cost of sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;822&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;383&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;12&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Selling, general, and administrative expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,266&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;1,326&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;269&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;3,088&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;1,709&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;281&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-CostOfSalesMember"
      decimals="-3"
      id="c70014886"
      unitRef="USD">822000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-CostOfSalesMember"
      decimals="-3"
      id="c70014887"
      unitRef="USD">383000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-CostOfSalesMember"
      decimals="-3"
      id="c70014888"
      unitRef="USD">12000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2020-01-01_2020-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"
      decimals="-3"
      id="c70014889"
      unitRef="USD">2266000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2019-01-01_2019-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"
      decimals="-3"
      id="c70014890"
      unitRef="USD">1326000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2018-01-01_2018-12-31_IncomeStatementLocationAxis-SellingGeneralAndAdministrativeExpensesMember"
      decimals="-3"
      id="c70014891"
      unitRef="USD">269000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014892"
      unitRef="USD">3088000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014893"
      unitRef="USD">1709000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70014894"
      unitRef="USD">281000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i_2020-12-31"
      decimals="INF"
      id="c70014796"
      unitRef="Share">354022</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <nwpx:CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed
      contextRef="i_2020-12-31"
      decimals="0"
      id="c70014799"
      unitRef="Pure">1</nwpx:CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-EmployeeStockOptionMember"
      id="c70014801">P60M</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70014803"
      unitRef="Share">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014812"
      unitRef="Share">24000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="d_2020-01-01_2020-12-31"
      decimals="INF"
      id="c70014813"
      unitRef="USDPerShare">24.15</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014816"
      unitRef="USD">100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70014817"
      unitRef="Share">0</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70014824"
      unitRef="Share">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763239">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Number of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;RSUs and&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;PSAs &lt;/b&gt;&lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;&lt;b&gt;(1)&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Weighted-&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Average Grant&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Date Fair&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Value&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unvested RSUs and PSAs as of December 31, 2019&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;85,170&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;RSUs and PSAs granted&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;97,834&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;26.61&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Unvested RSUs and PSAs canceled&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,752&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;RSUs and PSAs vested &lt;span style="font-family:Times New Roman;font-size:8pt;"&gt;(2)&lt;/span&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(49,680&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;23.56&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unvested RSUs and PSAs as of December 31, 2020&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;129,572&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;25.86&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014895"
      unitRef="Share">85170</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014896"
      unitRef="USDPerShare">23.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014897"
      unitRef="Share">97834</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014898"
      unitRef="USDPerShare">26.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014899"
      unitRef="Share">3752</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014900"
      unitRef="USDPerShare">23.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014901"
      unitRef="Share">49680</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014902"
      unitRef="USDPerShare">23.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014903"
      unitRef="Share">129572</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="INF"
      id="c70014904"
      unitRef="USDPerShare">25.86</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage
      contextRef="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="0"
      id="c70014827"
      unitRef="Pure">1</nwpx:RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage>
    <nwpx:PerformanceAwardsIssuedMultiplier
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="2"
      id="c70014831"
      unitRef="Pure">1.36</nwpx:PerformanceAwardsIssuedMultiplier>
    <nwpx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance
      contextRef="i_2020-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="INF"
      id="c70014834"
      unitRef="Share">91000</nwpx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance>
    <nwpx:PerformanceAwardsIssuedMultiplier
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MinimumMember"
      decimals="-3"
      id="c70014835"
      unitRef="Pure">0</nwpx:PerformanceAwardsIssuedMultiplier>
    <nwpx:PerformanceAwardsIssuedMultiplier
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember_RangeAxis-MaximumMember"
      decimals="0"
      id="c70014836"
      unitRef="Pure">2</nwpx:PerformanceAwardsIssuedMultiplier>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"
      decimals="INF"
      id="c70014840"
      unitRef="USDPerShare">26.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"
      decimals="INF"
      id="c70014841"
      unitRef="USDPerShare">23.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="INF"
      id="c70014846"
      unitRef="USDPerShare">26.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="INF"
      id="c70014847"
      unitRef="USDPerShare">23.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-PerformanceSharesMember"
      decimals="INF"
      id="c70014848"
      unitRef="USDPerShare">19.97</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsRSUMember"
      decimals="-3"
      id="c70014849"
      unitRef="Share">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="-6"
      id="c70014856"
      unitRef="USD">2000000.0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="d_2019-01-01_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="-3"
      id="c70014857"
      unitRef="USD">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue
      contextRef="d_2018-01-01_2018-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="-5"
      id="c70014858"
      unitRef="USD">1600000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      decimals="-5"
      id="c70014861"
      unitRef="USD">2500000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="d_2020-01-01_2020-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember"
      id="c70014862">P1Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued
      contextRef="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014867"
      unitRef="Share">17442</us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued>
    <us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued
      contextRef="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014868"
      unitRef="Share">11924</us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued>
    <us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued
      contextRef="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014869"
      unitRef="Share">11172</us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued>
    <nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue
      contextRef="d_2020-01-01_2020-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014870"
      unitRef="USDPerShare">25.81</nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue>
    <nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue
      contextRef="d_2019-01-01_2019-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014872"
      unitRef="USDPerShare">25.16</nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue>
    <nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue
      contextRef="d_2018-01-01_2018-12-31_TitleOfIndividualAxis-DirectorMember"
      decimals="INF"
      id="c70014874"
      unitRef="USDPerShare">21.48</nwpx:ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763240">
   &lt;p style="margin: 0pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;14&lt;/em&gt;&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;COMMITMENTS AND CONTINGENCIES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Portland Harbor Superfund Site&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; December 2000, &lt;/em&gt;a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (&#x201c;EPA&#x201d;). While the Company&#x2019;s Portland, Oregon manufacturing facility does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; border the Willamette River, an outfall from the facility&#x2019;s stormwater system drains into a neighboring property&#x2019;s privately owned stormwater system and slip. Also in &lt;em style="font: inherit;"&gt; December 2000, &lt;/em&gt;the Company was notified by the EPA and the Oregon Department of Environmental Quality (&#x201c;ODEQ&#x201d;) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (&#x201c;CERCLA&#x201d;). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of 14&#160;potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in &lt;em style="font: inherit;"&gt; February 2016, &lt;/em&gt;and the feasibility study in &lt;em style="font: inherit;"&gt; June 2016, &lt;/em&gt;which identified multiple remedial alternatives. In &lt;em style="font: inherit;"&gt; January 2017, &lt;/em&gt;the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $1&#160;billion and 13&#160;years to complete. The EPA has &lt;em style="font: inherit;"&gt;not&lt;/em&gt; yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than 150&#160;potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and &lt;em style="font: inherit;"&gt;no&lt;/em&gt; further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company's site, which are focused on controlling any current &#x201c;uplands&#x201d; releases of contaminants into the Willamette River. &lt;em style="font: inherit;"&gt;No&lt;/em&gt; liabilities have been established in connection with these investigations because the extent of contamination and the Company's responsibility for the contamination have &lt;em style="font: inherit;"&gt;not&lt;/em&gt; yet been determined.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (&#x201c;Trustees&#x201d;) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (&#x201c;NRDA&#x201d;) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section&#160;&lt;em style="font: inherit;"&gt;107.&lt;/em&gt; The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, &lt;em style="font: inherit;"&gt;three&lt;/em&gt; federal agencies, and &lt;em style="font: inherit;"&gt;one&lt;/em&gt; state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In &lt;em style="font: inherit;"&gt; June 2014, &lt;/em&gt;the Company agreed to participate in the injury assessment process, which included funding $0.4&#160;million of the assessment. The Company has &lt;em style="font: inherit;"&gt;not&lt;/em&gt; assumed any additional payment obligations or liabilities with the participation with the NRDA. It is uncertain whether the Company will enter into an early settlement for natural resource damages or what costs it &lt;em style="font: inherit;"&gt; may &lt;/em&gt;incur in any such early settlement.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; January 2017, &lt;/em&gt;the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in &lt;em style="font: inherit;"&gt;2009,&lt;/em&gt; filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; have sufficient information to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide &lt;em style="font: inherit;"&gt;no&lt;/em&gt; assurance that those policies will cover all of the costs which the Company &lt;em style="font: inherit;"&gt; may &lt;/em&gt;incur.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;All Sites&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company&#x2019;s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations there under which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Other Contingencies and Legal Proceedings&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;From time to time, the Company is involved in litigation relating to claims arising out of its operations in the normal course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is &lt;em style="font: inherit;"&gt;not&lt;/em&gt; presently a party to litigation, the outcome of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;On &lt;em style="font: inherit;"&gt; April&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;21,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; there was an accidental fire at the Company&#x2019;s Saginaw, Texas facility which resulted in damage to the coatings building. There were &lt;em style="font: inherit;"&gt;no&lt;/em&gt; injuries, but the ability to coat at this facility was impaired while the Company repaired the damage. The Company&#x2019;s other production locations were deployed to absorb the lost production that resulted. The Company has insurance coverage in place covering, among other things, business interruption and property damage up to certain specified amounts, and worked with its insurance company to restore the facility to full service as safely and quickly as possible. The Saginaw facility resumed operations in &lt;em style="font: inherit;"&gt; October 2019. &lt;/em&gt;The Company received $1.4&#160;million of business interruption insurance recovery (net of incremental production costs) during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and incurred $1.6&#160;million of incremental production costs (net of business interruption insurance recovery) during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; which were recorded in Cost of sales.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Guarantees&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company has entered into certain letters of credit that total $1.6&#160;million as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020.&lt;/em&gt; The letters of credit relate to workers&#x2019; compensation insurance.&lt;/p&gt;
  </us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <nwpx:NumberOfPotentiallyResponsibleParties
      contextRef="i_2017-01-31_CounterpartyNameAxis-LowerWillametteGroupMember"
      decimals="INF"
      id="c70014907"
      unitRef="Pure">14</nwpx:NumberOfPotentiallyResponsibleParties>
    <nwpx:EstimatedCostOfEPASelectedRemedy
      contextRef="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember"
      decimals="-9"
      id="c70014908"
      unitRef="USD">1000000000</nwpx:EstimatedCostOfEPASelectedRemedy>
    <nwpx:EstimatedTimeToCompleteSelectedEPARemedy
      contextRef="d_2017-01-01_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember"
      id="c70014909">P13Y</nwpx:EstimatedTimeToCompleteSelectedEPARemedy>
    <nwpx:NumberOfPotentiallyResponsibleParties
      contextRef="i_2017-01-31_EnvironmentalRemediationSiteAxis-PortlandHarborSuperfundSiteMember"
      decimals="INF"
      id="c70014911"
      unitRef="Pure">150</nwpx:NumberOfPotentiallyResponsibleParties>
    <us-gaap:LossContingencyAccrualCarryingValueCurrent
      contextRef="i_2014-06-30_LossContingenciesByNatureOfContingencyAxis-PortlandHarborNaturalreSourcesTrusteeCouncilMember"
      decimals="-5"
      id="c70014918"
      unitRef="USD">400000</us-gaap:LossContingencyAccrualCarryingValueCurrent>
    <nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery
      contextRef="d_2020-01-01_2020-12-31_NoncatastrophicEventAxis-FireMember"
      decimals="-5"
      id="c70014930"
      unitRef="USD">-1400000</nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery>
    <nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery
      contextRef="d_2019-01-01_2019-12-31_NoncatastrophicEventAxis-FireMember"
      decimals="-5"
      id="c70014933"
      unitRef="USD">1600000</nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i_2020-12-31"
      decimals="-5"
      id="c70014936"
      unitRef="USD">1600000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763241">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;15&lt;/em&gt;&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;REVENUE:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company adopted ASC&#160;Topic&#160;&lt;em style="font: inherit;"&gt;606,&lt;/em&gt; &#x201c;Revenue from Contracts with Customers,&#x201d; (&#x201c;Topic&#160;&lt;em style="font: inherit;"&gt;606&#x201d;&lt;/em&gt;) on &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; using the modified retrospective method applied to those contracts that were &lt;em style="font: inherit;"&gt;not&lt;/em&gt; completed as of that date. The cumulative effect of adopting Topic&#160;&lt;em style="font: inherit;"&gt;606&lt;/em&gt; was a $0.9&#160;million decrease to Retained earnings as of &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; due to a change in the timing of revenue recognition on certain costs under the new revenue standard, as well as, to a lesser extent, a change in the costs included in the provisions for losses on uncompleted contracts. Under the modified retrospective method, periods prior to &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; were &lt;em style="font: inherit;"&gt;not&lt;/em&gt; adjusted and continue to be reported in accordance with accounting standards in effect for those periods.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Net sales by geographic region, based on the location of the customer, were as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales by geographic region:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;United States&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;254,956&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;252,797&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;161,415&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Canada&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,951&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;26,520&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;10,734&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;285,907&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;One customer accounted for 16% and 23% of total Net sales for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; respectively. No customer accounted for &lt;em style="font: inherit;"&gt;10%&lt;/em&gt; or more of total Net sales for the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Revisions in contract estimates resulted in an increase (decrease) in revenue of $2.2&#160;million, $(1.2)&#160;million, and $(0.2)&#160;million for the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;Disaggregation of Revenue&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Over time&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;241,690&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Point in time&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;44,217&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;285,907&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Contract Assets and Liabilities&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The difference between the opening and closing balances of the Company&#x2019;s Contract assets and Contract liabilities primarily results from the timing difference between the Company&#x2019;s performance and billings, and during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; an increase due to the acquisition of Ameron of $12.0&#160;million of Contract assets and $0.1&#160;million of Contract liabilities. The changes in the Contract assets and Contract liabilities balances during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018&lt;/em&gt; were &lt;em style="font: inherit;"&gt;not&lt;/em&gt; materially affected by any other factors.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recognized revenue that was included in the Contract liabilities balance at the beginning of each period of $12.3&#160;million, $3.7&#160;million, and $2.6&#160;million during the years ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; respectively.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;Backlog&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Backlog represents the balance of remaining performance obligations under signed contracts for water infrastructure steel pipe products for which revenue is recognized over time. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; backlog was approximately&#160;$167&#160;million. The Company expects to recognize approximately&#160;79% of the remaining performance obligations in &lt;span style="-sec-ix-hidden:c70014989"&gt;2021,&lt;/span&gt; 20% in &lt;span style="-sec-ix-hidden:c70014991"&gt;2022,&lt;/span&gt; and the balance thereafter.&lt;/p&gt;
  </us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:StockholdersEquity
      contextRef="i_2018-01-01_AdjustmentsForNewAccountingPronouncementsAxis-AccountingStandardsUpdate201409Member_CumulativeEffectPeriodOfAdoptionAxis-CumulativeEffectPeriodOfAdoptionAdjustmentMember_StatementEquityComponentsAxis-RetainedEarningsMember"
      decimals="-5"
      id="c70014946"
      unitRef="USD">-900000</us-gaap:StockholdersEquity>
    <us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763242">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net sales by geographic region:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;United States&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;254,956&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;252,797&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;161,415&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Canada&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;30,951&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;26,520&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;10,734&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;285,907&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31_StatementGeographicalAxis-US"
      decimals="-3"
      id="c70014997"
      unitRef="USD">254956000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31_StatementGeographicalAxis-US"
      decimals="-3"
      id="c70014998"
      unitRef="USD">252797000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31_StatementGeographicalAxis-US"
      decimals="-3"
      id="c70014999"
      unitRef="USD">161415000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31_StatementGeographicalAxis-CA"
      decimals="-3"
      id="c70015000"
      unitRef="USD">30951000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31_StatementGeographicalAxis-CA"
      decimals="-4"
      id="c70015001"
      unitRef="USD">26520000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31_StatementGeographicalAxis-CA"
      decimals="-3"
      id="c70015002"
      unitRef="USD">10734000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015003"
      unitRef="USD">285907000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015004"
      unitRef="USD">279317000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015005"
      unitRef="USD">172149000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <nwpx:NumberOfMajorCustomers
      contextRef="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"
      decimals="INF"
      id="c70017480"
      unitRef="Pure">1</nwpx:NumberOfMajorCustomers>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="d_2020-01-01_2020-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"
      decimals="2"
      id="c70014952"
      unitRef="Pure">0.16</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="d_2019-01-01_2019-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"
      decimals="2"
      id="c70014953"
      unitRef="Pure">0.23</us-gaap:ConcentrationRiskPercentage1>
    <nwpx:NumberOfMajorCustomers
      contextRef="d_2018-01-01_2018-12-31_ConcentrationRiskByBenchmarkAxis-SalesRevenueNetMember_ConcentrationRiskByTypeAxis-CustomerConcentrationRiskMember"
      decimals="-3"
      id="c70014957"
      unitRef="Pure">0</nwpx:NumberOfMajorCustomers>
    <nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014961"
      unitRef="USD">2200000</nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax>
    <nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-5"
      id="c70014962"
      unitRef="USD">-1200000</nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax>
    <nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014963"
      unitRef="USD">-200000</nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763243">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Over time&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;241,690&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Point in time&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;44,217&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net sales&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;285,907&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;279,317&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;172,149&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"
      decimals="-4"
      id="c70015006"
      unitRef="USD">241690000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"
      decimals="-3"
      id="c70015007"
      unitRef="USD">279317000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember"
      decimals="-3"
      id="c70015008"
      unitRef="USD">172149000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"
      decimals="-3"
      id="c70015009"
      unitRef="USD">44217000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"
      decimals="-3"
      id="c70015010"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredAtPointInTimeMember"
      decimals="-3"
      id="c70015011"
      unitRef="USD">0</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015012"
      unitRef="USD">285907000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015013"
      unitRef="USD">279317000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015014"
      unitRef="USD">172149000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-6"
      id="c70014971"
      unitRef="USD">12000000.0</us-gaap:ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination
      contextRef="d_2018-01-01_2018-12-31_BusinessAcquisitionAxis-AmeronWaterTransmissionGroupLLCMember"
      decimals="-5"
      id="c70014972"
      unitRef="USD">100000</us-gaap:ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-5"
      id="c70014978"
      unitRef="USD">12300000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-5"
      id="c70014979"
      unitRef="USD">3700000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70014980"
      unitRef="USD">2600000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:RevenueRemainingPerformanceObligation
      contextRef="i_2020-12-31"
      decimals="-6"
      id="c70014987"
      unitRef="USD">167000000</us-gaap:RevenueRemainingPerformanceObligation>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01"
      decimals="2"
      id="c70014988"
      unitRef="Pure">0.79</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:RevenueRemainingPerformanceObligationPercentage
      contextRef="i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2022-01-01"
      decimals="1"
      id="c70014990"
      unitRef="Pure">0.20</us-gaap:RevenueRemainingPerformanceObligationPercentage>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763244">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;16&lt;/em&gt;&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;INCOME TAXES:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The United States and foreign components of Income before income taxes are as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;United States&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;24,768&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;32,244&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;16,207&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;866&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;396&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;853&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;25,634&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;32,640&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;17,060&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The components of Income tax expense (benefit) are as follows (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Current:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Federal&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;958&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;174&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(117&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;State&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,342&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(16&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;99&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;243&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;439&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;395&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total current income tax expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,543&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;597&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;377&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Federal&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,380&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,597&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,954&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;State&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(386&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;561&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(807&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;47&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(17&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;132&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: 9pt;"&gt;Total deferred income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,041&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,141&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(3,629&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;6,584&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,738&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(3,252&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The difference between the Company&#x2019;s effective income tax rate and the federal statutory income tax rate is explained as follows (dollar amounts in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Income tax expense at federal statutory rate&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,383&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,854&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,583&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;State expense (benefit), net of federal income tax effect&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;953&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,261&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(218&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Federal and state income tax credits&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Change in valuation allowance&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(181&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,564&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,618&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Tax windfall on share-based compensation&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(369&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Bargain purchase gain&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(4,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Nondeductible expenses&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%; text-align: right;"&gt;447&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(24&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;427&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Foreign rate differential&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;78&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;36&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;77&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(96&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;175&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;101&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;6,584&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,738&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(3,252&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Effective income tax rate&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;25.7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;14.5&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(19.1&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The income tax effect of temporary differences that give rise to significant portions of deferred income tax assets and liabilities is presented below (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred income tax assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued employee benefits&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,525&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,089&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;73&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;147&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Trade receivable, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;958&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;788&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net operating loss carryforwards&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,231&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,391&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Tax credit carryforwards&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,699&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,173&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;389&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;509&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;10,875&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;15,097&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(6,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,647&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8,971&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred income tax liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Contract assets, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,366&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,703&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(12,029&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(10,578&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,737&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(226&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Prepaid expenses&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(889&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(587&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(17,021&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(13,094&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net deferred income tax liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(12,374&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(4,123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Amounts are presented in the Consolidated Balance Sheets as follows:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income tax assets, included in Other assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;107&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;142&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(12,481&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(4,265&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net deferred income tax liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(12,374&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(4,123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;


   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In assessing the ability to realize deferred income tax assets, management considers whether it is more likely than &lt;em style="font: inherit;"&gt;not&lt;/em&gt; that some portion or all of the deferred income tax assets will &lt;em style="font: inherit;"&gt;not&lt;/em&gt; be realized. The ultimate realization of deferred income tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become deductible. Management considers the scheduled reversal of deferred income tax liabilities, projected future taxable income, taxable income in carryback periods, and tax planning strategies in making this assessment. Because the Company has a recent history of generating cumulative losses, management did &lt;em style="font: inherit;"&gt;not&lt;/em&gt; consider projections of future taxable income as persuasive evidence for the recoverability of its deferred income tax assets. The Company believes it is more likely than &lt;em style="font: inherit;"&gt;not&lt;/em&gt; it will realize the benefits of its deductible differences as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; net of any valuation allowance.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company had approximately $2.0&#160;million of federal income tax credit carryforwards, which expire on various dates between &lt;span style="-sec-ix-hidden:c70015027"&gt;2023&lt;/span&gt; and &lt;span style="-sec-ix-hidden:c70015028"&gt;2034,&lt;/span&gt; and $1.0&#160;million of capital loss carryforwards, which expire in &lt;span style="-sec-ix-hidden:c70015030"&gt;2024.&lt;/span&gt; As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company also had approximately&#160;$30.0&#160;million of state net operating loss carryforwards, which expire on various dates between &lt;span style="-sec-ix-hidden:c70015034"&gt;2021&lt;/span&gt;&#160;and &lt;span style="-sec-ix-hidden:c70015035"&gt;2038,&lt;/span&gt; and state income tax credit carryforwards of $4.2&#160;million, which begin to expire in &lt;span style="-sec-ix-hidden:c70015037"&gt;2021.&lt;/span&gt; As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; the Company also had approximately&#160;$4.4&#160;million of foreign net operating loss carryforwards, which expire on various dates between &lt;span style="-sec-ix-hidden:c70015041"&gt;2023&lt;/span&gt; and &lt;span style="-sec-ix-hidden:c70015042"&gt;2030.&lt;/span&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is &lt;em style="font: inherit;"&gt;no&lt;/em&gt; longer subject to United States Federal, state, or foreign income tax examinations for years before &lt;em style="font: inherit;"&gt;2016.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;A summary of the changes in the unrecognized income tax benefits is presented below (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrecognized income tax benefits, beginning of year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,116&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Increases for positions taken in the current year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;234&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrecognized income tax benefits, end of year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; believe it is reasonably possible that the total amounts of unrecognized income tax benefits will change in the following &lt;em style="font: inherit;"&gt;twelve&lt;/em&gt; months; however, actual results could differ from those currently expected. Effectively all of the unrecognized income tax benefits would affect the Company&#x2019;s effective income tax rate if recognized at some point in the future.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The Company recognizes interest and penalties related to uncertain income tax positions in Income tax expense (benefit). As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2020&lt;/em&gt; and &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the Company had &lt;span style="-sec-ix-hidden:c70015050"&gt;&lt;span style="-sec-ix-hidden:c70015051"&gt;no&lt;/span&gt;&lt;/span&gt; accrued interest related to uncertain income tax positions. Total interest for uncertain income tax positions did &lt;em style="font: inherit;"&gt;not&lt;/em&gt; change materially in &lt;em style="font: inherit;"&gt;2020,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; or &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;On &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;22,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2017,&lt;/em&gt; the Tax Cuts and Jobs Act of &lt;em style="font: inherit;"&gt;2017&lt;/em&gt; (&#x201c;TCJA&#x201d;) was signed into law making significant changes to the Internal Revenue Code. Changes include, but are &lt;em style="font: inherit;"&gt;not&lt;/em&gt; limited to, a federal corporate income tax rate decrease from 35% to 21% effective for tax years beginning after &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2017,&lt;/em&gt; the transition of U.S. international taxation from a worldwide tax system to a territorial system, and a &lt;em style="font: inherit;"&gt;one&lt;/em&gt;-time transition tax on the mandatory deemed repatriation of cumulative foreign earnings as of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2017.&lt;/em&gt; Additionally, Staff Accounting Bulletin &lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;118&lt;/em&gt; (&#x201c;SAB&#160;&lt;em style="font: inherit;"&gt;118&#x201d;&lt;/em&gt;) was issued to address the application of U.S. GAAP in situations when a registrant does &lt;em style="font: inherit;"&gt;not&lt;/em&gt; have the necessary information available, prepared, or analyzed (including computations) in reasonable detail to complete the accounting for certain income tax effects of the TCJA. As of &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;22,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; the end of the measurement period for purposes of SAB&#160;&lt;em style="font: inherit;"&gt;118,&lt;/em&gt; the Company had completed the analysis based on available legislative updates relating to the TCJA, which did &lt;em style="font: inherit;"&gt;not&lt;/em&gt; result in material changes from the amount recorded in &lt;em style="font: inherit;"&gt;2017.&lt;/em&gt; On &lt;em style="font: inherit;"&gt; January&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;1,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2019,&lt;/em&gt; the Company adopted Accounting Standards Update&#160;&lt;em style="font: inherit;"&gt;No.&lt;/em&gt;&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;02,&lt;/em&gt; &#x201c;Income Statement&#x2014;Reporting Comprehensive Income (Topic&#160;&lt;em style="font: inherit;"&gt;220&lt;/em&gt;): Reclassification of Certain Tax Effects from Accumulated Other Comprehensive Income&#x201d; (&#x201c;ASU&#160;&lt;em style="font: inherit;"&gt;2018&lt;/em&gt;-&lt;em style="font: inherit;"&gt;02&#x201d;&lt;/em&gt;), which resulted in a reclassification of $0.2&#160;million from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the TCJA.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;

  </us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763245">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;United States&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;24,768&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;32,244&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;16,207&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;866&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;396&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;853&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;25,634&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;32,640&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;17,060&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015091"
      unitRef="USD">24768000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015092"
      unitRef="USD">32244000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015093"
      unitRef="USD">16207000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015094"
      unitRef="USD">866000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015095"
      unitRef="USD">396000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015096"
      unitRef="USD">853000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015097"
      unitRef="USD">25634000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-4"
      id="c70015098"
      unitRef="USD">32640000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-4"
      id="c70015099"
      unitRef="USD">17060000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763246">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Current:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Federal&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;958&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;174&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(117&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;State&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,342&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(16&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;99&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;243&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;439&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;395&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total current income tax expense&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2,543&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;597&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;377&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Federal&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,380&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,597&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,954&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;State&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(386&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;561&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(807&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Foreign&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;47&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(17&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;132&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: 9pt;"&gt;Total deferred income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,041&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,141&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(3,629&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;6,584&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,738&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(3,252&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015101"
      unitRef="USD">958000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015102"
      unitRef="USD">174000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015103"
      unitRef="USD">-117000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015104"
      unitRef="USD">1342000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015105"
      unitRef="USD">-16000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015106"
      unitRef="USD">99000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015107"
      unitRef="USD">243000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015108"
      unitRef="USD">439000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015109"
      unitRef="USD">395000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015110"
      unitRef="USD">2543000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015111"
      unitRef="USD">597000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015112"
      unitRef="USD">377000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-4"
      id="c70015114"
      unitRef="USD">4380000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015115"
      unitRef="USD">3597000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015116"
      unitRef="USD">-2954000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015117"
      unitRef="USD">-386000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015118"
      unitRef="USD">561000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015119"
      unitRef="USD">-807000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015120"
      unitRef="USD">47000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015121"
      unitRef="USD">-17000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015122"
      unitRef="USD">132000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015123"
      unitRef="USD">4041000</nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit>
    <nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015124"
      unitRef="USD">4141000</nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit>
    <nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015125"
      unitRef="USD">-3629000</nwpx:DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015126"
      unitRef="USD">6584000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015127"
      unitRef="USD">4738000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015128"
      unitRef="USD">-3252000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763247">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Income tax expense at federal statutory rate&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,383&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,854&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,583&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;State expense (benefit), net of federal income tax effect&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;953&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,261&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(218&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Federal and state income tax credits&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Change in valuation allowance&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(181&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,564&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,618&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Tax windfall on share-based compensation&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(369&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Bargain purchase gain&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(4,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Nondeductible expenses&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%; text-align: right;"&gt;447&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(24&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;427&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Foreign rate differential&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;78&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;36&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;77&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(96&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;175&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;101&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Income tax expense (benefit)&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;6,584&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,738&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(3,252&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Effective income tax rate&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;25.7&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;14.5&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;%&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(19.1&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;)%&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015129"
      unitRef="USD">5383000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015130"
      unitRef="USD">6854000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015131"
      unitRef="USD">3583000</us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015132"
      unitRef="USD">953000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015133"
      unitRef="USD">1261000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015134"
      unitRef="USD">-218000</us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes>
    <nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015135"
      unitRef="USD">-0</nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits>
    <nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015136"
      unitRef="USD">-0</nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits>
    <nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015137"
      unitRef="USD">7000</nwpx:IncomeTaxReconciliationTaxFederalAndStateTaxCredits>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015138"
      unitRef="USD">-181000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015139"
      unitRef="USD">-3564000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015140"
      unitRef="USD">-2618000</us-gaap:IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015141"
      unitRef="USD">0</nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation>
    <nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015142"
      unitRef="USD">0</nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation>
    <nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015143"
      unitRef="USD">-369000</nwpx:EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation>
    <nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015144"
      unitRef="USD">-0</nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss>
    <nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015145"
      unitRef="USD">-0</nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss>
    <nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015146"
      unitRef="USD">4228000</nwpx:EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015147"
      unitRef="USD">447000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015148"
      unitRef="USD">-24000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationNondeductibleExpense
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015149"
      unitRef="USD">427000</us-gaap:IncomeTaxReconciliationNondeductibleExpense>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015150"
      unitRef="USD">78000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015151"
      unitRef="USD">36000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015152"
      unitRef="USD">77000</us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015153"
      unitRef="USD">-96000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015154"
      unitRef="USD">175000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxReconciliationOtherAdjustments
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015155"
      unitRef="USD">101000</us-gaap:IncomeTaxReconciliationOtherAdjustments>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015156"
      unitRef="USD">6584000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015157"
      unitRef="USD">4738000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015158"
      unitRef="USD">-3252000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="d_2020-01-01_2020-12-31"
      decimals="3"
      id="c70015159"
      unitRef="Pure">0.257</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="d_2019-01-01_2019-12-31"
      decimals="3"
      id="c70015160"
      unitRef="Pure">0.145</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="d_2018-01-01_2018-12-31"
      decimals="3"
      id="c70015161"
      unitRef="Pure">-0.191</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763248">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31,&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred income tax assets:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Accrued employee benefits&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,525&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,089&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Inventories&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;73&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;147&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Trade receivable, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;958&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;788&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net operating loss carryforwards&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;3,231&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,391&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Tax credit carryforwards&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;2,699&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5,173&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Other&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;389&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;509&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;10,875&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;15,097&lt;/td&gt;&lt;td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(6,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4,647&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8,971&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Deferred income tax liabilities:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Contract assets, net&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,366&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,703&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Property and equipment&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(12,029&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(10,578&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Intangible assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,737&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(226&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Prepaid expenses&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(889&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(587&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(17,021&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(13,094&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net deferred income tax liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(12,374&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(4,123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="width: 68%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Amounts are presented in the Consolidated Balance Sheets as follows:&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income tax assets, included in Other assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;107&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;142&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Deferred income taxes&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(12,481&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(4,265&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Net deferred income tax liabilities&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(12,374&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(4,123&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015163"
      unitRef="USD">3525000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015164"
      unitRef="USD">3089000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015165"
      unitRef="USD">73000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015166"
      unitRef="USD">147000</us-gaap:DeferredTaxAssetsInventory>
    <nwpx:DeferredTaxAssetTradeReceivableNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015167"
      unitRef="USD">958000</nwpx:DeferredTaxAssetTradeReceivableNet>
    <nwpx:DeferredTaxAssetTradeReceivableNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015168"
      unitRef="USD">788000</nwpx:DeferredTaxAssetTradeReceivableNet>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015169"
      unitRef="USD">3231000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015170"
      unitRef="USD">5391000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015171"
      unitRef="USD">2699000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015172"
      unitRef="USD">5173000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015173"
      unitRef="USD">389000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015174"
      unitRef="USD">509000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015175"
      unitRef="USD">10875000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015176"
      unitRef="USD">15097000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015177"
      unitRef="USD">6228000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015178"
      unitRef="USD">6126000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015179"
      unitRef="USD">4647000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015180"
      unitRef="USD">8971000</us-gaap:DeferredTaxAssetsNet>
    <nwpx:DeferredTaxLiabilitiesContractAssetsNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015182"
      unitRef="USD">1366000</nwpx:DeferredTaxLiabilitiesContractAssetsNet>
    <nwpx:DeferredTaxLiabilitiesContractAssetsNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015183"
      unitRef="USD">1703000</nwpx:DeferredTaxLiabilitiesContractAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015184"
      unitRef="USD">12029000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015185"
      unitRef="USD">10578000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015186"
      unitRef="USD">2737000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015187"
      unitRef="USD">226000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesPrepaidExpenses
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015188"
      unitRef="USD">889000</us-gaap:DeferredTaxLiabilitiesPrepaidExpenses>
    <us-gaap:DeferredTaxLiabilitiesPrepaidExpenses
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015189"
      unitRef="USD">587000</us-gaap:DeferredTaxLiabilitiesPrepaidExpenses>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015190"
      unitRef="USD">17021000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015191"
      unitRef="USD">13094000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015192"
      unitRef="USD">12374000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015193"
      unitRef="USD">4123000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i_2020-12-31_BalanceSheetLocationAxis-OtherAssetsMember"
      decimals="-3"
      id="c70015195"
      unitRef="USD">107000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i_2019-12-31_BalanceSheetLocationAxis-OtherAssetsMember"
      decimals="-3"
      id="c70015196"
      unitRef="USD">142000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015197"
      unitRef="USD">12481000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015198"
      unitRef="USD">4265000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015199"
      unitRef="USD">12374000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015200"
      unitRef="USD">4123000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember"
      decimals="-6"
      id="c70015026"
      unitRef="USD">2000000.0</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-DomesticCountryMember_TaxCreditCarryforwardAxis-CapitalLossCarryforwardMember"
      decimals="-6"
      id="c70015029"
      unitRef="USD">1000000.0</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember"
      decimals="-7"
      id="c70015033"
      unitRef="USD">30000000.0</us-gaap:OperatingLossCarryforwards>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-StateAndLocalJurisdictionMember"
      decimals="-5"
      id="c70015036"
      unitRef="USD">4200000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i_2020-12-31_IncomeTaxAuthorityAxis-ForeignCountryMember"
      decimals="-5"
      id="c70015040"
      unitRef="USD">4400000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763249">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrecognized income tax benefits, beginning of year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;4,116&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Increases for positions taken in the current year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;-&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;234&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrecognized income tax benefits, end of year&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;&lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;4,350&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70015201"
      unitRef="USD">4350000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2018-12-31"
      decimals="-4"
      id="c70015202"
      unitRef="USD">4350000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2017-12-31"
      decimals="-3"
      id="c70015203"
      unitRef="USD">4116000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="d_2020-01-01_2020-12-31"
      decimals="-3"
      id="c70015204"
      unitRef="USD">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="d_2019-01-01_2019-12-31"
      decimals="-3"
      id="c70015205"
      unitRef="USD">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-3"
      id="c70015206"
      unitRef="USD">234000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2020-12-31"
      decimals="-4"
      id="c70015207"
      unitRef="USD">4350000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70015208"
      unitRef="USD">4350000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i_2018-12-31"
      decimals="-4"
      id="c70015209"
      unitRef="USD">4350000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="d_2017-01-01_2017-12-31"
      decimals="2"
      id="c70015060"
      unitRef="Pure">0.35</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="d_2020-01-01_2020-12-31"
      decimals="2"
      id="c70015061"
      unitRef="Pure">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect
      contextRef="d_2019-01-01_2019-01-01"
      decimals="-5"
      id="c70015086"
      unitRef="USD">200000</us-gaap:TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect>
    <us-gaap:ComprehensiveIncomeNoteTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763250">
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;
    &lt;tbody&gt;
     &lt;tr style="vertical-align: top;"&gt;
      &lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;17.&lt;/em&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;ACCUMULATED OTHER COMPREHENSIVE LOSS:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
     &lt;/tr&gt;

    &lt;/tbody&gt;
   &lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;Accumulated other comprehensive loss consists of the following (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Pension liability adjustment, net of income tax benefit of $679 and $671&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,795&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,770&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(71&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(44&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,866&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,814&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table summarizes changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Pension Liability Adjustment&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Unrealized&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Loss&#160;on Cash&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Flow Hedges&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Balance, December 31, 2019&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1,770&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(44&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1,814&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;"&gt;Other comprehensive loss before reclassifications&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(308&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(311&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;"&gt;Amounts reclassified from Accumulated other comprehensive loss&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;281&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;259&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Net current period adjustments to Other comprehensive loss&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(25&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(27&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(52&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Balance, December 31, 2020&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,795&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(71&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,866&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Consolidated Statements of Operations (in thousands):&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amount reclassified from Accumulated Other&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Comprehensive Loss&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;Affected line item in the&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"&gt;&lt;b&gt;Details about Accumulated Other&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;Consolidated Statements&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0); width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"&gt;&lt;b&gt;Comprehensive Loss Components&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0); width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;of Operations&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Pension liability adjustment:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net periodic pension cost:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Service cost&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(16&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(11&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(11&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Cost of sales&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Non-service cost&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;46&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(15&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;52&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Other income&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;"&gt;Associated income tax (expense) benefit&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(8&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Income tax expense (benefit)&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;49&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Unrealized gain (loss) on cash flow hedges:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Gain (loss) on cash flow hedges&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(378&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;13&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Net sales&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;"&gt;Associated income tax (expense) benefit&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;97&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Income tax expense (benefit)&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(281&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;12&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Total reclassifications for the period&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(259&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(15&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;61&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;&#160;&lt;/p&gt;

  </us-gaap:ComprehensiveIncomeNoteTextBlock>
    <us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763251">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="6" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Pension liability adjustment, net of income tax benefit of $679 and $671&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,795&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(1,770&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(71&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(44&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 68%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Total&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,866&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,814&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;
   </us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015212"
      unitRef="USD">1795000</us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax
      contextRef="i_2019-12-31"
      decimals="-4"
      id="c70015213"
      unitRef="USD">1770000</us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax>
    <us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015216"
      unitRef="USD">-71000</us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax>
    <us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015217"
      unitRef="USD">-44000</us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i_2020-12-31"
      decimals="-3"
      id="c70015220"
      unitRef="USD">-1866000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i_2019-12-31"
      decimals="-3"
      id="c70015221"
      unitRef="USD">-1814000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763252">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Pension Liability Adjustment&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Unrealized&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Loss&#160;on Cash&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Flow Hedges&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Total&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Balance, December 31, 2019&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1,770&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(44&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1,814&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;"&gt;Other comprehensive loss before reclassifications&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(308&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(311&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;"&gt;Amounts reclassified from Accumulated other comprehensive loss&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;281&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;259&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Net current period adjustments to Other comprehensive loss&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(25&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(27&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(52&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="width: 52%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Balance, December 31, 2020&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,795&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(71&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(1,866&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;
   </nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-4"
      id="c70015222"
      unitRef="USD">-1770000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015223"
      unitRef="USD">-44000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2019-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015224"
      unitRef="USD">-1814000</us-gaap:StockholdersEquity>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015225"
      unitRef="USD">-3000</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015226"
      unitRef="USD">-308000</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015227"
      unitRef="USD">-311000</us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015228"
      unitRef="USD">22000</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015229"
      unitRef="USD">-281000</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015230"
      unitRef="USD">-259000</us-gaap:ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015231"
      unitRef="USD">-25000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015232"
      unitRef="USD">-27000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015233"
      unitRef="USD">-52000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015234"
      unitRef="USD">-1795000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015235"
      unitRef="USD">-71000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i_2020-12-31_StatementEquityComponentsAxis-AccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015236"
      unitRef="USD">-1866000</us-gaap:StockholdersEquity>
    <us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763253">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;
     &lt;tbody&gt;
      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Amount reclassified from Accumulated Other&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Comprehensive Loss&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;Affected line item in the&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"&gt;&lt;b&gt;Details about Accumulated Other&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="10" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Year Ended December 31, &lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;Consolidated Statements&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0); width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"&gt;&lt;b&gt;Comprehensive Loss Components&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2020&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2019&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;2018&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0); width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;of Operations&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom;"&gt;
       &lt;td style="width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;Pension liability adjustment:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Net periodic pension cost:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Service cost&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(16&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(11&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(11&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Cost of sales&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;"&gt;Non-service cost&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;46&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(15&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;52&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Other income&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;"&gt;Associated income tax (expense) benefit&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(8&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;4&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;8&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Income tax expense (benefit)&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(22&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;49&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Unrealized gain (loss) on cash flow hedges:&lt;/p&gt; &lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 13%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 1%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&#160;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Gain (loss) on cash flow hedges&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(378&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;5&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;13&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Net sales&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;"&gt;Associated income tax (expense) benefit&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;97&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;2&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(1&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"&gt;&lt;em style="font: inherit;"&gt;Income tax expense (benefit)&lt;/em&gt;&lt;/p&gt; &lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;(281&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;7&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt;12&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

      &lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 30%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;"&gt;Total reclassifications for the period&lt;/p&gt; &lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(259&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;(15&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"&gt;)&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;$&lt;/td&gt;
       &lt;td style="width: 13%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);"&gt;61&lt;/td&gt;
       &lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;
       &lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 22%;"&gt;&lt;em style="font: inherit;"&gt;&#160;&lt;/em&gt;&lt;/td&gt;
      &lt;/tr&gt;

     &lt;/tbody&gt;
    &lt;/table&gt;
   </us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015239"
      unitRef="USD">-16000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015240"
      unitRef="USD">-11000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015241"
      unitRef="USD">-11000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015243"
      unitRef="USD">46000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015244"
      unitRef="USD">-15000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015245"
      unitRef="USD">52000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015247"
      unitRef="USD">8000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015248"
      unitRef="USD">-4000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015249"
      unitRef="USD">-8000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015251"
      unitRef="USD">22000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015252"
      unitRef="USD">-22000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember"
      decimals="-3"
      id="c70015253"
      unitRef="USD">49000</us-gaap:NetIncomeLoss>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015256"
      unitRef="USD">-378000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015257"
      unitRef="USD">5000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015258"
      unitRef="USD">13000</us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015260"
      unitRef="USD">-97000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015261"
      unitRef="USD">-2000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015262"
      unitRef="USD">1000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015264"
      unitRef="USD">-281000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015265"
      unitRef="USD">7000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember_StatementEquityComponentsAxis-AccumulatedGainLossNetCashFlowHedgeParentMember"
      decimals="-3"
      id="c70015266"
      unitRef="USD">12000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015268"
      unitRef="USD">-259000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2019-01-01_2019-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015269"
      unitRef="USD">-15000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="d_2018-01-01_2018-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"
      decimals="-3"
      id="c70015270"
      unitRef="USD">61000</us-gaap:NetIncomeLoss>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763254">
   &lt;p style="margin: 0pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/p&gt;
   &lt;table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: top;"&gt;&lt;td style="width: 36pt;"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;&lt;em style="font: inherit;"&gt;18&lt;/em&gt;&lt;/b&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"&gt;&lt;b&gt;RESTRUCTURING:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"&gt;In &lt;em style="font: inherit;"&gt; March 2018, &lt;/em&gt;the Company announced its plan to close its leased manufacturing facility in Salt Lake City, Utah and move the production to its facility in St.&#160;Louis, Missouri, which was completed during the &lt;em style="font: inherit;"&gt;second&lt;/em&gt; quarter of &lt;em style="font: inherit;"&gt;2018.&lt;/em&gt; Also in &lt;em style="font: inherit;"&gt; March 2018, &lt;/em&gt;the Company announced its plan to close its manufacturing facility in Monterrey, Mexico. Production ceased early in the &lt;em style="font: inherit;"&gt;second&lt;/em&gt; quarter of &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; and the facility was sold in &lt;em style="font: inherit;"&gt; December 2018. &lt;/em&gt;The Company incurred restructuring expense of $1.4&#160;million during the year ended &lt;em style="font: inherit;"&gt; December&#160;&lt;/em&gt;&lt;em style="font: inherit;"&gt;31,&lt;/em&gt; &lt;em style="font: inherit;"&gt;2018,&lt;/em&gt; which includes employee severance and termination related restructuring expense of $0.6&#160;million and expense related to demobilization activities of $0.8&#160;million.&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/p&gt;

  </us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringCharges
      contextRef="d_2018-01-01_2018-12-31"
      decimals="-5"
      id="c70015277"
      unitRef="USD">1400000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember"
      decimals="-5"
      id="c70015280"
      unitRef="USD">600000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges
      contextRef="d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-DemobilizationActivitiesMember"
      decimals="-5"
      id="c70015281"
      unitRef="USD">800000</us-gaap:RestructuringCharges>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763255">
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"&gt;&lt;b&gt;Schedule II&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"&gt;&#160;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"&gt;&lt;b&gt;NORTHWEST PIPE COMPANY&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"&gt;&lt;b&gt;&lt;a href="#" id="sched2" title="sched2"/&gt;VALUATION AND QUALIFYING ACCOUNTS&lt;/b&gt;&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"&gt;(Dollars in thousands)&lt;/p&gt;
   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"&gt;&#160;&lt;/p&gt;

    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Balance at Beginning of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Period&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Charged to&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Profit and&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Loss&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Deduction&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;from&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Reserves&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Balance at&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;End of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Period&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2020:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;801&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;430&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;(464&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;"&gt;767&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;240&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;(138&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2019:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;660&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;312&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(171&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;801&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;345&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,652&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2018:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;477&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;449&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(266&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;660&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;10,413&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,785&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,765&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

   &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"&gt;&lt;b&gt;&#160;&lt;/b&gt;&lt;/p&gt;

  </srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
    <nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock contextRef="d_2020-01-01_2020-12-31" id="c1763256">
    &lt;table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; text-indent: 0px;"&gt;&lt;tbody&gt;&lt;tr style="vertical-align: bottom;"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Balance at Beginning of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Period&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Charged to&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Profit and&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Loss&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Deduction&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;from&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Reserves&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td colspan="2" style="text-align: center; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Balance at&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;End of&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"&gt;&lt;b&gt;&lt;b&gt;Period&lt;/b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; width: 52%;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2020:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;801&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;430&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;(464&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;"&gt;767&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;240&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; text-align: right;"&gt;(138&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,228&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2019:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;660&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;312&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(171&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;801&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;345&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(3,652&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;6,126&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;td&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"&gt;&lt;b&gt;Year Ended December 31, 2018:&lt;/b&gt;&lt;/p&gt; &lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="text-align: left; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Allowance for doubtful accounts&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;477&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;449&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(266&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;$&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;660&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"&gt;&lt;td style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt; &lt;p style="font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;"&gt;Valuation allowance for deferred income tax assets&lt;/p&gt; &lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;10,413&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;1,785&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;(2,765&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;)&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt;"&gt;&#160;&lt;/td&gt;&lt;td style="width: 9%; text-align: right; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;9,433&lt;/td&gt;&lt;td style="width: 1%; font-family: &amp;quot;Times New Roman&amp;quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"&gt;&#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
   </nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015285"
      unitRef="USD">801000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-4"
      id="c70015286"
      unitRef="USD">430000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015287"
      unitRef="USD">464000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015288"
      unitRef="USD">767000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015289"
      unitRef="USD">6126000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-4"
      id="c70015290"
      unitRef="USD">240000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2020-01-01_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015291"
      unitRef="USD">138000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2020-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015292"
      unitRef="USD">6228000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-4"
      id="c70015294"
      unitRef="USD">660000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015295"
      unitRef="USD">312000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015296"
      unitRef="USD">171000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015297"
      unitRef="USD">801000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015298"
      unitRef="USD">9433000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015299"
      unitRef="USD">345000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2019-01-01_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015300"
      unitRef="USD">3652000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015301"
      unitRef="USD">6126000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015303"
      unitRef="USD">477000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015304"
      unitRef="USD">449000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-3"
      id="c70015305"
      unitRef="USD">266000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember"
      decimals="-4"
      id="c70015306"
      unitRef="USD">660000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015307"
      unitRef="USD">10413000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015308"
      unitRef="USD">1785000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="d_2018-01-01_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015309"
      unitRef="USD">2765000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i_2018-12-31_ValuationAllowancesAndReservesTypeAxis-ValuationAllowanceOfDeferredTaxAssetsMember"
      decimals="-3"
      id="c70015310"
      unitRef="USD">9433000</us-gaap:ValuationAllowancesAndReservesBalance>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#c70014630"
          xlink:label="c70014630"
          xlink:type="locator"/>
        <link:footnote id="f65242d5c-da09-425f-b26d-54bdbc53f29d" xlink:label="f65242d5c-da09-425f-b26d-54bdbc53f29d" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014630"
          xlink:to="f65242d5c-da09-425f-b26d-54bdbc53f29d"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#c70014901"
          xlink:label="c70014901"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014897"
          xlink:label="c70014897"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014895"
          xlink:label="c70014895"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014899"
          xlink:label="c70014899"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014903"
          xlink:label="c70014903"
          xlink:type="locator"/>
        <link:footnote id="fcd6d0607-cb88-4493-a923-ba0495594941" xlink:label="fcd6d0607-cb88-4493-a923-ba0495594941" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">The number of PSAs disclosed in this table are at the target level of 100%.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014901"
          xlink:to="fcd6d0607-cb88-4493-a923-ba0495594941"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014897"
          xlink:to="fcd6d0607-cb88-4493-a923-ba0495594941"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014895"
          xlink:to="fcd6d0607-cb88-4493-a923-ba0495594941"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014899"
          xlink:to="fcd6d0607-cb88-4493-a923-ba0495594941"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014903"
          xlink:to="fcd6d0607-cb88-4493-a923-ba0495594941"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#c70014267"
          xlink:label="c70014267"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014266"
          xlink:label="c70014266"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014268"
          xlink:label="c70014268"
          xlink:type="locator"/>
        <link:footnote id="f3da7990e-1591-4855-b73d-0cf3d94a4f98" xlink:label="f3da7990e-1591-4855-b73d-0cf3d94a4f98" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">There were no antidilutive shares for the years ended December 31, 2020 or 2019. The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 63,000 for the year ended December 31, 2018, including approximately 39,000 of PSAs, at the target level of 100%, that were not included because the performance conditions had not been met as of December 31, 2018.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014267"
          xlink:to="f3da7990e-1591-4855-b73d-0cf3d94a4f98"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014266"
          xlink:to="f3da7990e-1591-4855-b73d-0cf3d94a4f98"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014268"
          xlink:to="f3da7990e-1591-4855-b73d-0cf3d94a4f98"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#c70014902"
          xlink:label="c70014902"
          xlink:type="locator"/>
        <link:footnote id="f50ad1074-50b1-4ef8-b389-20740dafcdbd" xlink:label="f50ad1074-50b1-4ef8-b389-20740dafcdbd" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">For the PSAs vested on March 31, 2020; the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of 136%, based on the performance-based conditions achieved.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014901"
          xlink:to="f50ad1074-50b1-4ef8-b389-20740dafcdbd"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014902"
          xlink:to="f50ad1074-50b1-4ef8-b389-20740dafcdbd"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#c70014628"
          xlink:label="c70014628"
          xlink:type="locator"/>
        <link:footnote id="fad4a6f03-ae2c-4974-bc97-3538ac648568" xlink:label="fad4a6f03-ae2c-4974-bc97-3538ac648568" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">Current portion of finance lease liabilities are included in Accrued liabilities.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014628"
          xlink:to="fad4a6f03-ae2c-4974-bc97-3538ac648568"
          xlink:type="arc"/>
        <link:loc
          xlink:href="#c70014584"
          xlink:label="c70014584"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#c70014585"
          xlink:label="c70014585"
          xlink:type="locator"/>
        <link:footnote id="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32" xlink:label="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-us">Finance lease right-of-use assets are presented net of accumulated amortization of $1.3 million and $0.9 million as of December 31, 2020 and 2019, respectively.</link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014584"
          xlink:to="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="c70014585"
          xlink:to="f921d779f-b8ab-41b5-9a5a-f73fb49c6c32"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501918952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Document And Entity Information - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Feb. 22, 2021</div></th>
<th class="th"><div>Jun. 30, 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_dei_DocumentInformationLineItems', window );"><strong>Document Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0001001385<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">Northwest Pipe Co.<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2020<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2020<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">0-27140<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">OR<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">93-0557988<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">201 NE Park Plaza Drive, Suite 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">Vancouver<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">WA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">98684<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">360<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">397-6250<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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 $0.01 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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">NWPX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr 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_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 240,361,182<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,814,398<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 annual 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, 20-F, 40-F<br> -Number 240<br> -Section 15<br> -Subsection d-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_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_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_DocumentInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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;">dei_DocumentInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="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_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="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_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="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_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_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>16
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499491608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Operations - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 285,907<span></span>
</td>
<td class="nump">$ 279,317<span></span>
</td>
<td class="nump">$ 172,149<span></span>
</td>
</tr>
<tr class="ro">
<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 sales</a></td>
<td class="nump">235,388<span></span>
</td>
<td class="nump">232,133<span></span>
</td>
<td class="nump">160,053<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_GrossProfit', window );">Gross profit</a></td>
<td class="nump">50,519<span></span>
</td>
<td class="nump">47,184<span></span>
</td>
<td class="nump">12,096<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expense</a></td>
<td class="nump">24,954<span></span>
</td>
<td class="nump">18,495<span></span>
</td>
<td class="nump">16,663<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_nwpx_GainLossOnDispositionOfFacility', window );">Gain on sale of facilities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(2,960)<span></span>
</td>
</tr>
<tr class="ro">
<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 expense</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,364<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="nump">25,565<span></span>
</td>
<td class="nump">28,689<span></span>
</td>
<td class="num">(2,971)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount', window );">Bargain purchase gain</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">20,080<span></span>
</td>
</tr>
<tr class="re">
<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</a></td>
<td class="nump">953<span></span>
</td>
<td class="nump">4,383<span></span>
</td>
<td class="nump">267<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InvestmentIncomeInterestAndDividend', window );">Interest income</a></td>
<td class="nump">49<span></span>
</td>
<td class="nump">40<span></span>
</td>
<td class="nump">267<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestExpense', window );">Interest expense</a></td>
<td class="num">(933)<span></span>
</td>
<td class="num">(472)<span></span>
</td>
<td class="num">(583)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income taxes</a></td>
<td class="nump">25,634<span></span>
</td>
<td class="nump">32,640<span></span>
</td>
<td class="nump">17,060<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit)</a></td>
<td class="nump">6,584<span></span>
</td>
<td class="nump">4,738<span></span>
</td>
<td class="num">(3,252)<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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 19,050<span></span>
</td>
<td class="nump">$ 27,902<span></span>
</td>
<td class="nump">$ 20,312<span></span>
</td>
</tr>
<tr class="re">
<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>Net income per common share</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="nump">$ 1.95<span></span>
</td>
<td class="nump">$ 2.86<span></span>
</td>
<td class="nump">$ 2.09<span></span>
</td>
</tr>
<tr class="re">
<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 (in dollars per share)</a></td>
<td class="nump">$ 1.93<span></span>
</td>
<td class="nump">$ 2.85<span></span>
</td>
<td class="nump">$ 2.09<span></span>
</td>
</tr>
<tr class="ro">
<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>Shares used in per share calculations:</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_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="nump">9,788<span></span>
</td>
<td class="nump">9,741<span></span>
</td>
<td class="nump">9,726<span></span>
</td>
</tr>
<tr class="ro">
<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 (in shares)</a></td>
<td class="nump">9,873<span></span>
</td>
<td class="nump">9,779<span></span>
</td>
<td class="nump">9,733<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_GainLossOnDispositionOfFacility">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 gain (loss) on sale or disposal of a facility.</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;">nwpx_GainLossOnDispositionOfFacility</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined), this element represents the amount of gain recognized by the 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 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6571-128477<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 50<br> -Paragraph 1<br> -Subparagraph (f)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6387-128476<br><br>Reference 4: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6396-128476<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6527-128477<br><br>Reference 6: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6393-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_BusinessCombinationBargainPurchaseGainRecognizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_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_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 per each share of common stock or unit 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<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 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<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 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<br><br>Reference 14: 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 15: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_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_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_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_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_InterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the cost of borrowed funds accounted for as interest expense.</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 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=119993939&amp;loc=d3e28555-108399<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 (d)<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 220<br> -SubTopic 10<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (210.5-03(11))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 5: 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.9)<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeInterestAndDividend">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accretion (amortization) of purchase discount (premium) of interest income and dividend income on nonoperating 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 S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7(a),(b))<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_InvestmentIncomeInterestAndDividend</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 (b)<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 (a)<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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-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> -Subparagraph (a)<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 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 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 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 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>17
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501997928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Comprehensive Income - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 19,050<span></span>
</td>
<td class="nump">$ 27,902<span></span>
</td>
<td class="nump">$ 20,312<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract', window );"><strong>Other comprehensive income (loss), net of tax:</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_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent', window );">Pension liability adjustment</a></td>
<td class="num">(25)<span></span>
</td>
<td class="nump">16<span></span>
</td>
<td class="num">(115)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent', window );">Unrealized gain (loss) on cash flow hedges</a></td>
<td class="num">(27)<span></span>
</td>
<td class="num">(59)<span></span>
</td>
<td class="nump">24<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive loss, net of tax</a></td>
<td class="num">(52)<span></span>
</td>
<td class="num">(43)<span></span>
</td>
<td class="num">(91)<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_ComprehensiveIncomeNetOfTax', window );">Comprehensive income</a></td>
<td class="nump">$ 18,998<span></span>
</td>
<td class="nump">$ 27,859<span></span>
</td>
<td class="nump">$ 20,221<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan, attributable to parent.</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 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 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 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 10A<br> -Subparagraph (i-k)<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_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to 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 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_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501950712">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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">$ 37,927<span></span>
</td>
<td class="nump">$ 31,014<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesNetCurrent', window );">Trade and other receivables, less allowance for doubtful accounts of $767 and $801</a></td>
<td class="nump">42,680<span></span>
</td>
<td class="nump">38,026<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetNetCurrent', window );">Contract assets</a></td>
<td class="nump">76,985<span></span>
</td>
<td class="nump">91,186<span></span>
</td>
</tr>
<tr class="re">
<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">29,177<span></span>
</td>
<td class="nump">30,654<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="nump">5,194<span></span>
</td>
<td class="nump">4,159<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_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">191,963<span></span>
</td>
<td class="nump">195,039<span></span>
</td>
</tr>
<tr class="ro">
<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 and equipment, net</a></td>
<td class="nump">110,184<span></span>
</td>
<td class="nump">99,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_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="nump">30,813<span></span>
</td>
<td class="nump">7,683<span></span>
</td>
</tr>
<tr class="ro">
<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">22,985<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_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">10,518<span></span>
</td>
<td class="nump">1,231<span></span>
</td>
</tr>
<tr class="ro">
<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">6,552<span></span>
</td>
<td class="nump">6,661<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_Assets', window );">Total assets</a></td>
<td class="nump">373,015<span></span>
</td>
<td class="nump">310,245<span></span>
</td>
</tr>
<tr class="ro">
<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="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Current portion of long-term debt</a></td>
<td class="nump">7,701<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_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">12,993<span></span>
</td>
<td class="nump">15,493<span></span>
</td>
</tr>
<tr class="re">
<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 liabilities</a></td>
<td class="nump">16,814<span></span>
</td>
<td class="nump">12,150<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Contract liabilities</a></td>
<td class="nump">6,189<span></span>
</td>
<td class="nump">12,281<span></span>
</td>
</tr>
<tr class="re">
<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 );">Current portion of operating lease liabilities</a></td>
<td class="nump">2,204<span></span>
</td>
<td class="nump">1,642<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_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">45,901<span></span>
</td>
<td class="nump">41,566<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt</a></td>
<td class="nump">5,888<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_OperatingLeaseLiabilityNoncurrent', window );">Long-term lease liabilities, operating leases</a></td>
<td class="nump">27,911<span></span>
</td>
<td class="nump">6,247<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">12,481<span></span>
</td>
<td class="nump">4,265<span></span>
</td>
</tr>
<tr class="ro">
<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 long-term liabilities</a></td>
<td class="nump">11,208<span></span>
</td>
<td class="nump">10,009<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">103,389<span></span>
</td>
<td class="nump">62,087<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 14)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Stockholders&#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_PreferredStockValue', window );">Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or 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_CommonStockValue', window );">Common stock, $.01 par value, 15,000,000 shares authorized, 9,805,437 and 9,746,979 shares issued and outstanding</a></td>
<td class="nump">98<span></span>
</td>
<td class="nump">97<span></span>
</td>
</tr>
<tr class="ro">
<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">123,013<span></span>
</td>
<td class="nump">120,544<span></span>
</td>
</tr>
<tr class="re">
<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">148,381<span></span>
</td>
<td class="nump">129,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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss</a></td>
<td class="num">(1,866)<span></span>
</td>
<td class="num">(1,814)<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_StockholdersEquity', window );">Total stockholders&#8217; equity</a></td>
<td class="nump">269,626<span></span>
</td>
<td class="nump">248,158<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_LiabilitiesAndStockholdersEquity', window );">Total liabilities and stockholders&#8217; equity</a></td>
<td class="nump">$ 373,015<span></span>
</td>
<td class="nump">$ 310,245<span></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_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_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_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="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.25)<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 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03.(a),19)<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: 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.17)<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="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_CommonStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.</p></div>
<a href="javascript:void(0);" onclick="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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121556615&amp;loc=SL49130533-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_ContractWithCustomerAssetNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease 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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,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_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease 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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<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_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_PreferredStockValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.</p></div>
<a href="javascript:void(0);" onclick="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_PreferredStockValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ReceivablesNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable 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 944<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<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 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 946<br> -SubTopic 210<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-06(3))<br> -URI http://asc.fasb.org/extlink&amp;oid=120401414&amp;loc=d3e604059-122996<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(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_ReceivablesNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692592678568">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Balance Sheets (Parentheticals) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_AllowanceForDoubtfulAccountsReceivable', window );">Allowance for doubtful accounts</a></td>
<td class="nump">$ 767<span></span>
</td>
<td class="nump">$ 801<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Preferred stock, shares authorized (in shares)</a></td>
<td class="nump">10,000,000<span></span>
</td>
<td class="nump">10,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock, par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">15,000,000<span></span>
</td>
<td class="nump">15,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">9,805,437<span></span>
</td>
<td class="nump">9,746,979<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">9,805,437<span></span>
</td>
<td class="nump">9,746,979<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_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_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 of common stock outstanding. Common stock represent the ownership interest in a corporation.</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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 preferred stock nonredeemable or redeemable solely at the option of the issuer.</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_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="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_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript:void(0);" onclick="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_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="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_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504989864">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Consolidated Statements of Stockholders' Equity - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Cumulative Effect, Period of Adoption, Adjustment [Member] </div>
<div>Common Stock [Member]</div>
</th>
<th class="th">
<div>Cumulative Effect, Period of Adoption, Adjustment [Member] </div>
<div>Additional Paid-in Capital [Member]</div>
</th>
<th class="th">
<div>Cumulative Effect, Period of Adoption, Adjustment [Member] </div>
<div>Retained Earnings [Member]</div>
</th>
<th class="th">
<div>Cumulative Effect, Period of Adoption, Adjustment [Member] </div>
<div>AOCI Attributable to Parent [Member]</div>
</th>
<th class="th"><div>Cumulative Effect, Period of Adoption, Adjustment [Member]</div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>AOCI Attributable to Parent [Member]</div></th>
<th class="th"><div>Total</div></th>
</tr>
<tr class="rc">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharesOutstanding', window );">Balances (in shares) at Dec. 31, 2017</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,619,755<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 (Accounting Standards Update 2014-09 [Member]) at Dec. 31, 2017</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (875)<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="num">$ (875)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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, 2017</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 96<span></span>
</td>
<td class="nump">$ 119,856<span></span>
</td>
<td class="nump">$ 81,757<span></span>
</td>
<td class="num">$ (1,445)<span></span>
</td>
<td class="nump">$ 200,264<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">20,312<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">20,312<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent', window );">Pension liability adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(115)<span></span>
</td>
<td class="num">(115)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax', window );">Unrealized gain (loss) on cash flow hedges, net of tax expense/benefit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">24<span></span>
</td>
<td class="nump">24<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Issuance of common stock under stock compensation plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">115,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under stock compensation plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="num">(1,302)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,301)<span></span>
</td>
</tr>
<tr class="re">
<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 );">Share-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">281<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">281<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_SharesOutstanding', window );">Balances (in shares) at Dec. 31, 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="nump">9,735,055<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 (Accounting Standards Update 2018-02 [Member]) at Dec. 31, 2018</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 235<span></span>
</td>
<td class="num">$ (235)<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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 Dec. 31, 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="nump">$ 97<span></span>
</td>
<td class="nump">118,835<span></span>
</td>
<td class="nump">101,194<span></span>
</td>
<td class="num">(1,536)<span></span>
</td>
<td class="nump">218,590<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">27,902<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">27,902<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent', window );">Pension liability adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">16<span></span>
</td>
<td class="nump">16<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax', window );">Unrealized gain (loss) on cash flow hedges, net of tax expense/benefit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(59)<span></span>
</td>
<td class="num">(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_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Issuance of common stock under stock compensation plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,924<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under stock compensation plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">1,709<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,709<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_SharesOutstanding', window );">Balances (in shares) at Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,746,979<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 Dec. 31, 2019</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 97<span></span>
</td>
<td class="nump">120,544<span></span>
</td>
<td class="nump">129,331<span></span>
</td>
<td class="num">(1,814)<span></span>
</td>
<td class="nump">248,158<span></span>
</td>
</tr>
<tr class="re">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">19,050<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">19,050<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent', window );">Pension liability adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(25)<span></span>
</td>
<td class="num">(25)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax', window );">Unrealized gain (loss) on cash flow hedges, net of tax expense/benefit</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(27)<span></span>
</td>
<td class="num">(27)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation', window );">Issuance of common stock under stock compensation plans (in shares)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">58,458<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation', window );">Issuance of common stock under stock compensation plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="num">(619)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(618)<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">3,088<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,088<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_SharesOutstanding', window );">Balances (in shares) at Dec. 31, 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="nump">9,805,437<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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 Dec. 31, 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="nump">$ 98<span></span>
</td>
<td class="nump">$ 123,013<span></span>
</td>
<td class="nump">$ 148,381<span></span>
</td>
<td class="num">$ (1,866)<span></span>
</td>
<td class="nump">$ 269,626<span></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_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_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan, attributable to parent.</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 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 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 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 10A<br> -Subparagraph (i-k)<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_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 which are neither cancelled nor held in the treasury.</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_SharesOutstanding</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodSharesShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).</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(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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-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_StockIssuedDuringPeriodValueShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).</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 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<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 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 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_StockIssuedDuringPeriodValueShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201802Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201802Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>21
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692496074408">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Consolidated Statements of Cash Flows - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 19,050<span></span>
</td>
<td class="nump">$ 27,902<span></span>
</td>
<td class="nump">$ 20,312<span></span>
</td>
</tr>
<tr class="re">
<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 (used in) operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount', window );">Bargain purchase gain</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(20,080)<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_nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization', window );">Depreciation and finance lease amortization</a></td>
<td class="nump">12,344<span></span>
</td>
<td class="nump">12,391<span></span>
</td>
<td class="nump">8,767<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_nwpx_GainLossOnDispositionOfFacility', window );">Gain on sale of facilities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(2,960)<span></span>
</td>
</tr>
<tr class="re">
<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,207<span></span>
</td>
<td class="nump">322<span></span>
</td>
<td class="nump">550<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income taxes</a></td>
<td class="nump">2,908<span></span>
</td>
<td class="nump">4,169<span></span>
</td>
<td class="num">(3,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_nwpx_GainOnInsuranceProceeds', window );">Gain on insurance proceeds</a></td>
<td class="num">(1,147)<span></span>
</td>
<td class="num">(1,641)<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_ShareBasedCompensation', window );">Share-based compensation expense</a></td>
<td class="nump">3,088<span></span>
</td>
<td class="nump">1,709<span></span>
</td>
<td class="nump">281<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNoncashIncomeExpense', window );">Other, net</a></td>
<td class="nump">1,889<span></span>
</td>
<td class="nump">856<span></span>
</td>
<td class="nump">665<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables', window );">Trade and other receivables</a></td>
<td class="nump">1,563<span></span>
</td>
<td class="num">(3,435)<span></span>
</td>
<td class="nump">2,220<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset', window );">Contract assets, net</a></td>
<td class="nump">8,109<span></span>
</td>
<td class="num">(8,379)<span></span>
</td>
<td class="num">(17,809)<span></span>
</td>
</tr>
<tr class="ro">
<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="nump">7,153<span></span>
</td>
<td class="nump">8,649<span></span>
</td>
<td class="num">(13,628)<span></span>
</td>
</tr>
<tr class="re">
<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 assets</a></td>
<td class="nump">2,514<span></span>
</td>
<td class="nump">2,454<span></span>
</td>
<td class="nump">2,910<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(3,501)<span></span>
</td>
<td class="num">(4,675)<span></span>
</td>
<td class="nump">6,592<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities', window );">Accrued and other liabilities</a></td>
<td class="num">(90)<span></span>
</td>
<td class="nump">2,564<span></span>
</td>
<td class="num">(2,373)<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 (used in) operating activities</a></td>
<td class="nump">56,087<span></span>
</td>
<td class="nump">42,886<span></span>
</td>
<td class="num">(18,400)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="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>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Acquisition of business, net of cash acquired</a></td>
<td class="num">(48,728)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(37,223)<span></span>
</td>
</tr>
<tr class="re">
<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 and equipment</a></td>
<td class="num">(14,013)<span></span>
</td>
<td class="num">(8,585)<span></span>
</td>
<td class="num">(3,797)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireIntangibleAssets', window );">Purchases of intangible assets</a></td>
<td class="num">(329)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_ProceedsFromSaleOfFacility', window );">Proceeds from sale of facilities</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">8,515<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from sale of property and equipment</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">39<span></span>
</td>
<td class="nump">141<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromInsuranceSettlementInvestingActivities', window );">Proceeds from insurance</a></td>
<td class="nump">1,637<span></span>
</td>
<td class="nump">2,123<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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations', window );">Net cash used in investing activities from continuing operations</a></td>
<td class="num">(61,433)<span></span>
</td>
<td class="num">(6,423)<span></span>
</td>
<td class="num">(32,364)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations', window );">Net cash provided by investing activities from discontinued operations</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">4,465<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_NetCashProvidedByUsedInInvestingActivities', window );">Net cash used in investing activities</a></td>
<td class="num">(61,433)<span></span>
</td>
<td class="num">(6,423)<span></span>
</td>
<td class="num">(27,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_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromLinesOfCredit', window );">Borrowings on line of credit</a></td>
<td class="nump">41,377<span></span>
</td>
<td class="nump">41,744<span></span>
</td>
<td class="nump">29,904<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RepaymentsOfLinesOfCredit', window );">Repayments on line of credit</a></td>
<td class="num">(41,377)<span></span>
</td>
<td class="num">(53,208)<span></span>
</td>
<td class="num">(18,440)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt', window );">Borrowings on long-term debt</a></td>
<td class="nump">15,879<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_RepaymentsOfLongTermDebt', window );">Payments on long-term debt</a></td>
<td class="num">(2,117)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeasePrincipalPayments', window );">Payments on finance lease liabilities</a></td>
<td class="num">(420)<span></span>
</td>
<td class="num">(434)<span></span>
</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_PaymentsOfDebtIssuanceCosts', window );">Payments of debt issuance costs</a></td>
<td class="num">(465)<span></span>
</td>
<td class="num">(228)<span></span>
</td>
<td class="num">(435)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Tax withholdings related to net share settlements of restricted stock and performance share awards</a></td>
<td class="num">(618)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(1,301)<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="nump">12,259<span></span>
</td>
<td class="num">(12,126)<span></span>
</td>
<td class="nump">9,330<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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Change in cash and cash equivalents</a></td>
<td class="nump">6,913<span></span>
</td>
<td class="nump">24,337<span></span>
</td>
<td class="num">(36,969)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash and cash equivalents, beginning of period</a></td>
<td class="nump">31,014<span></span>
</td>
<td class="nump">6,677<span></span>
</td>
<td class="nump">43,646<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations', window );">Cash and cash equivalents, end of period</a></td>
<td class="nump">37,927<span></span>
</td>
<td class="nump">31,014<span></span>
</td>
<td class="nump">6,677<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SupplementalCashFlowInformationAbstract', window );"><strong>Supplemental disclosure of cash flow information:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestPaidNet', window );">Cash paid during the period for interest, net of amounts capitalized</a></td>
<td class="nump">599<span></span>
</td>
<td class="nump">369<span></span>
</td>
<td class="nump">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_IncomeTaxesPaidNet', window );">Cash paid (received) during the period for income taxes (net of refunds of $153, $286 and $1)</a></td>
<td class="nump">1,397<span></span>
</td>
<td class="num">(55)<span></span>
</td>
<td class="nump">170<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract', window );"><strong>Noncash investing and financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid', window );">Accrued property and equipment purchases</a></td>
<td class="nump">325<span></span>
</td>
<td class="nump">719<span></span>
</td>
<td class="nump">336<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets obtained in exchange for operating lease liabilities</a></td>
<td class="nump">4,471<span></span>
</td>
<td class="nump">1,335<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_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability', window );">Right-of-use assets obtained in exchange for finance lease liabilities</a></td>
<td class="nump">$ 507<span></span>
</td>
<td class="nump">$ 819<span></span>
</td>
<td class="nump">$ 599<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and amount of amortization expense attributable to right-of-use asset from finance lease.</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;">nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_GainLossOnDispositionOfFacility">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 gain (loss) on sale or disposal of a facility.</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;">nwpx_GainLossOnDispositionOfFacility</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_GainOnInsuranceProceeds">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of gain on insurance proceeds recognized during the 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;">nwpx_GainOnInsuranceProceeds</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_ProceedsFromSaleOfFacility">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from the sale of a facility used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="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;">nwpx_ProceedsFromSaleOfFacility</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_BusinessCombinationBargainPurchaseGainRecognizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined), this element represents the amount of gain recognized by the 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 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6571-128477<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 50<br> -Paragraph 1<br> -Subparagraph (f)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6387-128476<br><br>Reference 4: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6396-128476<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6527-128477<br><br>Reference 6: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6393-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_BusinessCombinationBargainPurchaseGainRecognizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalExpendituresIncurredButNotYetPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Future cash outflow to pay for purchases of fixed assets that have occurred.</p></div>
<a href="javascript:void(0);" onclick="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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4332-108586<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 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4313-108586<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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4304-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_CapitalExpendituresIncurredButNotYetPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=SL98516268-108586<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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3044-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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) of investing activities of 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://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 205<br> -SubTopic 20<br> -Section 50<br> -Paragraph 5B<br> -Subparagraph (c)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=109222650&amp;loc=SL51721673-107760<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax expense (benefit) pertaining to income (loss) 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 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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.1)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<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 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 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.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 5: 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 6: 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 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeasePrincipalPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for principal payment on finance 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 5<br> -Subparagraph (a)<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_FinanceLeasePrincipalPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.</p></div>
<a href="javascript:void(0);" onclick="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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4297-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_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amount due from customers for the credit sale of goods and services; includes accounts receivable and other types of receivables.</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_IncreaseDecreaseInAccountsAndOtherReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accrued expenses, and obligations 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://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_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="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_IncreaseDecreaseInContractWithCustomerAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_InterestPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.</p></div>
<a href="javascript:void(0);" onclick="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 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4297-108586<br><br>Reference 2: 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 17<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3367-108585<br><br>Reference 3: 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 25<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3536-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_InterestPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) of investing activities, excluding 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/2009/role/commonPracticeRef<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_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_OtherNoncashIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) included in net income that results in no cash inflow (outflow), 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> -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_OtherNoncashIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfDebtIssuanceCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.</p></div>
<a href="javascript:void(0);" onclick="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 (e)<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_PaymentsOfDebtIssuanceCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 to satisfy grantee's tax withholding obligation 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/2003/role/disclosureRef<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_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 a business, net of the cash acquired from the purchase.</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 (b)<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_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 acquire asset without physical form usually arising from contractual or other legal rights, excluding 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 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_PaymentsToAcquireIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_ProceedsFromInsuranceSettlementInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for proceeds from settlement of insurance claim, classified as investing activities. Excludes insurance settlement 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 21B<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=SL94080549-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 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_ProceedsFromInsuranceSettlementInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from a debt initially having maturity due after one year or beyond the 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 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (b)<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_ProceedsFromIssuanceOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="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 14<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3255-108585<br><br>Reference 2: 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.(f))<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_ProceedsFromLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="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> -Subparagraph (c)<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_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLinesOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.</p></div>
<a href="javascript:void(0);" onclick="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 (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121586364&amp;loc=d3e3291-108585<br><br>Reference 2: 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.(f))<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_RepaymentsOfLinesOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RepaymentsOfLongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for debt initially having maturity due after one year or beyond 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 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (b)<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_RepaymentsOfLongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right-of-use asset obtained in exchange for finance 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 (g)(2)<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_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right-of-use asset obtained in exchange for 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/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)(2)<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 (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_ShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SupplementalCashFlowInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_SupplementalCashFlowInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499303560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Organization<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock', window );">Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">1.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>ORGANIZATION:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Northwest Pipe Company (collectively with its subsidiaries, the &#8220;Company&#8221;) is a leading manufacturer for water related infrastructure products. In addition to being the largest manufacturer of engineered steel water pipeline systems in North America, the Company produces high-quality precast and reinforced concrete products, Permalok&#174; steel casing pipe, bar-wrapped concrete cylinder pipe, as well as linings, coatings, joints, and <em style="font: inherit;">one</em> of the largest offerings of fittings and specialized components. The Company provides solution-based products for a wide range of markets including water transmission and infrastructure, water and wastewater plant piping, structural stormwater and sewer systems, trenchless technology, and pipeline rehabilitation. The Company&#8217;s chief operating decision maker, its Chief Executive Officer, evaluates performance of the Company and makes decisions regarding allocation of resources based on total Company results. Therefore, the Company has determined that it operates in <span style="-sec-ix-hidden:c70014065">one</span> segment, Water Infrastructure. The Company has manufacturing facilities located in Portland, Oregon; Adelanto, California; Saginaw, Texas; Tracy, California; Parkersburg, West Virginia; Salt Lake City, Utah; Orem, Utah; St.&#160;George, Utah; St.&#160;Louis, Missouri; and San Luis R&#237;o Colorado, Mexico.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Impact of </b><b>the </b><b>COVID-<em style="font: inherit;">19</em> </b><b>Pandemic</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#160;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2020, </em>the World Health Organization declared coronavirus disease <em style="font: inherit;">2019</em> (<em style="font: inherit;">&#8220;COVID&#8209;19&#8221;</em>) a pandemic. The COVID-<em style="font: inherit;">19</em> pandemic has resulted in governments around the world implementing increasingly stringent measures to help control the spread of the virus, including quarantines, &#8220;shelter in place&#8221; and &#8220;stay at home&#8221; orders, travel restrictions, business curtailments, school closures, and other measures. In addition, governments and central banks in several parts of the world have enacted fiscal and monetary stimulus measures to counteract the economic impacts of the COVID-<em style="font: inherit;">19</em> pandemic.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Consistent with national guidelines and with state and local orders to date, the Company currently continues to operate its manufacturing facilities in the United States as it produces critical water infrastructure products. The Company has taken proactive and precautionary steps to ensure the safety of its employees, customers, and suppliers, including frequent cleaning and disinfection of workspaces, providing personal protective equipment, instituting social distancing measures, and offering remote working environments for certain employees.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In early <em style="font: inherit;"> April 2020, </em>the Company was ordered to close its water infrastructure manufacturing facility in San Luis R&#237;o Colorado, Mexico (&#8220;SLRC&#8221;) as a result of mandates made by Mexican authorities that companies that do <em style="font: inherit;">not</em> carry out essential activities in Mexico must suspend business operations in order to combat and eradicate the existence and transmission of COVID-<em style="font: inherit;">19.</em> The Company diverted orders on a case-by-case basis to its United States-based facilities during this closure. In early <em style="font: inherit;"> June 2020, </em>the Mexican authorities determined the SLRC facility was essential, and allowed weekly increases to the workforce. By <em style="font: inherit;"> July 2020, </em>operations at the SLRC facility were fully restored.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">While the COVID-<em style="font: inherit;">19</em> pandemic has <em style="font: inherit;">not</em> had a material adverse effect on the Company's reported results for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company is unable to predict the ultimate impact that the COVID-<em style="font: inherit;">19</em> pandemic <em style="font: inherit;"> may </em>have on its business, future results of operations, financial position, or cash flows. The extent to which the Company's operations <em style="font: inherit;"> may </em>be impacted by the COVID-<em style="font: inherit;">19</em> pandemic will depend largely on future developments, which are highly uncertain and cannot be accurately predicted, including new information which <em style="font: inherit;"> may </em>emerge concerning the severity of the pandemic and actions by government authorities to contain the pandemic or treat its impact. Furthermore, the impacts on global and domestic economic conditions, including the long-term potential to reduce or delay funding of municipal projects, and the continued disruptions to and volatility in the financial markets remain unknown. The Company continues to monitor&#160;the impact of the COVID-<em style="font: inherit;">19</em> pandemic on all aspects of its business.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 organization, consolidation and basis of presentation of financial statements disclosure.</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 205<br> -URI http://asc.fasb.org/topic&amp;trid=2122149<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 810<br> -URI http://asc.fasb.org/topic&amp;trid=2197479<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>23
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692593774600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 );">Significant Accounting Policies [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">2.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>SUMMARY OF SIGNIFICANT ACCOUNTING POLICIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Basis of Consolidation and Presentation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated. Certain amounts from the prior year financial statements have been reclassified in order to conform to the current year presentation.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Immaterial Correction of Error</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recorded revenue of $1.2&#160;million during the <em style="font: inherit;">three</em> and <em style="font: inherit;">twelve</em> months ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which should have been recorded in the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group,&#160;LLC (&#8220;Ameron&#8221;) facility. Management concluded that this out of period adjustment was <em style="font: inherit;">not</em> material to the consolidated financial results for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019</em> or <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><em style="font: inherit;"/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Use of Estimates</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;U.S.&#160;GAAP&#8221;) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results <em style="font: inherit;"> may </em>differ from these estimates under different assumptions or conditions.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Business Combinations</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related transaction costs are expensed as incurred.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances <em style="font: inherit;"> may </em>occur which <em style="font: inherit;"> may </em>affect the accuracy or validity of such estimates. As a result, during the measurement period, which <em style="font: inherit;"> may </em>be up to <em style="font: inherit;">one</em> year from the acquisition date, the Company <em style="font: inherit;"> may </em>record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the Company&#8217;s Consolidated Statements of Operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Cash and Cash Equivalents</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Cash and cash equivalents consist of cash and short-term, highly-liquid investments with maturities of <em style="font: inherit;">three</em> months or less when purchased.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Receivables and Allowance for Doubtful Accounts</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Trade receivables are reported on the Consolidated Balance Sheets net of doubtful accounts. The Company maintains allowances for estimated losses resulting from the inability of its customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#8217;s judgment. The Company will write down or write off a receivable account once the account is deemed uncollectible. If the customers&#8217; financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances <em style="font: inherit;"> may </em>need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Contract Assets and Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Contract assets primarily represent revenue earned over time but <em style="font: inherit;">not</em> yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within <em style="font: inherit;">30</em>&#160;days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Inventories</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Inventories are stated at the lower of cost and net realizable value. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the <em style="font: inherit;">first</em>-in, <em style="font: inherit;">first</em>-out method of accounting.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Property and Equipment</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment are recorded at cost. Maintenance and repairs are expensed as incurred, and costs of new equipment and buildings, as well as costs of expansions or refurbishment of existing equipment and buildings, including interest where applicable, are capitalized. Depreciation and amortization are determined by the units of production method for most equipment and by the straight-line method for the remaining assets based on the estimated useful lives of the related assets. Estimated useful lives by major classes of property and equipment are as follows: Land improvements (15&#160;&#8211; 30&#160;years); Buildings (20&#160;&#8211; 40&#160;years); and Machinery and equipment (3&#160;&#8211; 30&#160;years). Depreciation expense calculated under the units of production method <em style="font: inherit;"> may </em>be less than, equal to, or greater than depreciation expense calculated under the straight-line method due to variances in production levels. Upon disposal, costs and related accumulated depreciation of the assets are removed from the accounts and resulting gains or losses are reflected in operating expenses. The Company leases certain equipment under long-term finance leases, which are being amortized on a straight-line basis over the shorter of its useful life or the lease term.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company assesses impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be recoverable. The asset group is the lowest level at which identifiable cash flows are largely independent of the cash flows of other groups of assets or liabilities. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about the expected future operating performance of the Company.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Goodwill</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill represents the excess of purchase price over the assigned fair values of the assets and liabilities assumed in conjunction with an acquisition. Goodwill is reviewed for impairment annually as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> or whenever events occur or circumstances change that indicate goodwill <em style="font: inherit;"> may </em>be impaired. In testing goodwill for impairment, the Company has the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-<em style="font: inherit;">not</em> (more than <em style="font: inherit;">50%</em>) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, the Company evaluates factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. If the qualitative assessment indicates that it is more-likely-than-<em style="font: inherit;">not</em> that the fair value of the reporting unit is less than its carrying amount, or if the Company chooses <em style="font: inherit;">not</em> to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#8217;s fair value. If the reporting unit&#8217;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#8217;s fair value, <em style="font: inherit;">not</em> to exceed the total amount of goodwill allocated to the reporting unit.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Intangible Assets</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Intangible assets consist primarily of customer relationships and trade names and trademarks recorded as the result of acquisition activity. Intangible assets are amortized using the straight-line method over estimated useful lives ranging from 3&#160;to 15&#160;years.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Workers Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company is self-insured, or maintains high deductible policies, for losses and liabilities associated with workers compensation claims. Losses are accrued based upon the Company&#8217;s estimates of the aggregate liability for claims incurred using historical experience and certain actuarial assumptions followed in the insurance industry. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> workers compensation reserves recorded were $1.7&#160;million, of which $0.2&#160;million and $0.3&#160;million, respectively, were included in Accrued liabilities and $1.5&#160;million and $1.4&#160;million, respectively, were included in Other long-term liabilities.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accrued Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Accrued liabilities consist of the following (in thousands):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Accrued liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued bonus</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,747</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued vacation payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,328</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,263</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">375</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">420</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Workers compensation reserves</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">237</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">269</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">5,083</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">16,814</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">12,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
     <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Derivative Instruments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company conducts business in various foreign countries and, from time to time, settles transactions in foreign currencies. The Company has established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with the Company&#8217;s strategy for financial risk management. The Company utilizes cash flow hedge accounting treatment for qualifying foreign currency forward contracts. Instruments that do <em style="font: inherit;">not</em> qualify for cash flow hedge accounting treatment are remeasured at fair value on each balance sheet date and resulting gains and losses are recognized in earnings.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Pension Benefits</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <em style="font: inherit;">two</em> defined benefit pension plans that have been frozen since <em style="font: inherit;">2001.</em> The Company funds these plans to cover current plan costs plus amortization of the unfunded plan liabilities. To record these obligations, management uses estimates relating to investment returns, mortality, and discount rates.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Foreign Currency Transactions</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The functional currency of the Company, including its Mexican operations, is the United States dollar. Monetary assets and liabilities are remeasured at current exchange rates and non-monetary assets and liabilities are remeasured at historical exchange rates. Revenue and expenses related to monetary assets and liabilities are remeasured at average exchange rates and at historical exchange rates for the revenue and expenses related to non-monetary assets and liabilities.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Transaction gains (losses) from foreign currency forward contracts designated as cash flow hedges are included in Accumulated other comprehensive loss as a separate component of Stockholders&#8217; equity. For the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> net foreign currency transaction gains (losses) of $(1.1)&#160;million, $0.5&#160;million, and $(0.4)&#160;million, respectively, were recognized in earnings.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Revenue Recognition</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company&#8217;s contracts with its customers contains a single performance obligation, as the promise to transfer products is <em style="font: inherit;">not</em> separately identifiable from other promises in the contract and, therefore, is <em style="font: inherit;">not</em> distinct.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
      <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company&#8217;s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have <em style="font: inherit;">no</em> alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements <em style="font: inherit;"> may </em>result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that <em style="font: inherit;"> may </em>affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. The Company's contracts do <em style="font: inherit;">not</em> contain significant financing.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company does <em style="font: inherit;">not</em> recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Share-based Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of restricted stock units (&#8220;RSUs&#8221;) and performance share awards (&#8220;PSAs&#8221;) using the value of the Company&#8217;s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately <em style="font: inherit;">not</em> met.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Income Taxes</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future income tax consequences of events that have been recognized in the Company&#8217;s financial statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of the provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. The provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company records income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. The Company assesses income tax positions and records income tax benefits for all years subject to examination based upon management&#8217;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, the largest amount of income tax benefit with a greater than <em style="font: inherit;">50%</em> likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information has been recorded. For those income tax positions where it is <em style="font: inherit;">not</em> more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, <em style="font: inherit;">no</em> income tax benefit has been recognized in the Consolidated Financial Statements.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accumulated Other Comprehensive Loss</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accumulated other comprehensive loss includes unrealized gains and losses on derivative instruments related to the effective portion of cash flow hedges and changes in the funded status of the defined benefit pension plans, both net of the related income tax effect.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Net Income per Share</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all potential shares of common stock, including stock options, RSUs, and PSAs, to the extent dilutive. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">19,050</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,902</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,312</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,788</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,741</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effect of potentially dilutive common shares <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">38</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,873</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,779</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income per common share</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.95</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.93</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
     <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
    <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">There were no antidilutive shares for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> or <em style="font: inherit;">2019.</em> The weighted-average number of antidilutive shares <em style="font: inherit;">not</em> included in the computation of diluted net income per share was approximately&#160;63,000 for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> including approximately&#160;39,000 of PSAs, at the target level of 100%, that were <em style="font: inherit;">not</em> included because the performance conditions had <em style="font: inherit;">not</em> been met as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em></p></td></tr>
</tbody></table>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td><p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><em style="font: inherit;"/></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Concentrations of Credit Risk</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <span style="-sec-ix-hidden:c70014191"><span style="-sec-ix-hidden:c70014192">one</span></span> customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable, and a different customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> Foreign currency forward contracts are with a high quality financial institution. The Company&#8217;s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b/></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Recent Accounting and Reporting Developments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Accounting Changes</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13,</em> &#8220;Fair Value Measurement (Topic&#160;<em style="font: inherit;">820</em>): Disclosure Framework&#8212;Changes to the Disclosure Requirements for Fair Value Measurement&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13&#8221;</em>), which modifies the disclosure requirements for fair value measurements by removing, modifying, or adding certain disclosures. The Company adopted ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13</em> on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2020</em> and the impact was <em style="font: inherit;">not</em> material to the Company&#8217;s financial position, results of operations, or cash flows.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
      <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Recent Accounting Standards</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14,</em> &#8220;Compensation&#8212;Retirement Benefits&#8212;Defined Benefit Plans&#8212;General (Topic&#160;<em style="font: inherit;">715</em>-<em style="font: inherit;">20</em>): Disclosure Framework&#8212;Changes to the Disclosure Requirements for Defined Benefit Plans&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14&#8221;</em>), which modifies the disclosure requirements for employers that sponsor defined benefit pension or other postretirement plans by removing and adding certain disclosures for these plans. The eliminated disclosures include the amounts in accumulated other comprehensive income expected to be recognized in net periodic benefit costs over the next fiscal year and the amount and timing of plan assets expected to be returned to the employer. The new disclosures include an explanation of significant gains and losses related to changes in benefit obligations. ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14</em> is effective for the Company beginning <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted, and will be adopted on a retrospective basis. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2019, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12,</em> &#8220;Income Taxes (Topic&#160;<em style="font: inherit;">740</em>): Simplifying the Accounting for Income Taxes&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12&#8221;</em>), which simplifies the accounting for income taxes by removing certain exceptions to the general principles in Accounting Standards Codification (&#8220;ASC&#8221;) Topic&#160;<em style="font: inherit;">740,</em> &#8220;Income Taxes&#8221; (&#8220;Topic&#160;<em style="font: inherit;">740&#8221;</em>). ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> also improves consistent application of and simplifies U.S. GAAP for other areas of Topic&#160;<em style="font: inherit;">740</em> by clarifying and amending existing guidance. ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> is effective for the Company beginning <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2020, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2020</em>-<em style="font: inherit;">04,</em> &#8220;Reference Rate Reform (Topic&#160;<em style="font: inherit;">848</em>): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#8221; which provides optional expedients and exceptions for applying U.S. GAAP to contracts, hedging relationships, and other transactions affected by the discontinuation of the London Interbank Offered Rate (&#8220;LIBOR&#8221;) or by another reference rate expected to be discontinued. The guidance was effective beginning <em style="font: inherit;"> March 12, 2020 </em>and can be applied prospectively through <em style="font: inherit;"> December 31, 2022. </em>In <em style="font: inherit;"> January 2021, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2021</em>-<em style="font: inherit;">01,</em> &#8220;Reference Rate Reform - Scope,&#8221; which clarified the scope and application of the original guidance. The Company will adopt these standards when LIBOR is discontinued and does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"/>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>24
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499287816">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Business Combinations<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_BusinessCombinationDisclosureTextBlock', window );">Business Combination Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">3.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>BUSINESS COMBINATION</b><b>S</b><b>:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Geneva Pipe </b><b>and Precast </b><b>Company</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company completed the acquisition of 100% of Geneva Pipe and Precast Company (&#8220;Geneva&#8221;) (fka Geneva Pipe Company,&#160;Inc.) for a purchase price of $49.4&#160;million in cash. Geneva is a concrete pipe and precast concrete products manufacturer based in Utah. This acquisition expanded the Company&#8217;s water infrastructure product capabilities by adding additional reinforced concrete pipe capacity and a full line of precast concrete products including storm drains and manholes, catch basins, vaults, and curb inlets as well as innovative lined products that extend the life of concrete pipe and manholes for sewer applications. Operations have continued with Geneva's previous management and workforce at the <em style="font: inherit;">three</em> Utah manufacturing facilities located in Salt Lake City, Orem, and St.&#160;George. Consistent with prior periods and considering the chief operating decision maker's evaluation of post-acquisition performance is based on total Company results, the Company continues to report as one segment.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">691</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,089</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,673</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">356</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,096</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">21,684</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11,165</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">55,754</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,189</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">20,454</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,343</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other long-term liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">939</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">29,320</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">49,419</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the remaining unallocated purchase consideration recorded as goodwill. As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> June&#160;</em><em style="font: inherit;">30,</em> <em style="font: inherit;">2020</em> which resulted in a $0.1&#160;million balance sheet reclassification between trade and other receivables and inventories.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the components of the intangible assets acquired and their estimated useful lives:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Estimated </b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Useful Life</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Fair Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In years) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In thousands) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">11.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,031</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">10.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,093</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Backlog</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">0.9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,041</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">9.9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">11,165</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill arose from the acquisition of an assembled workforce, expansion of product offerings, and management&#8217;s industry know-how. The Company does <em style="font: inherit;">not</em> expect the goodwill to be deductible for tax purposes.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company incurred transaction costs associated with this acquisition of $2.6&#160;million and $0.6&#160;million during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively. These transaction costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Geneva operations contributed net sales of $44.2&#160;million to the Company&#8217;s continuing operations for the period from <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> to <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em> It is impracticable to determine the effect on net income as a substantial portion of Geneva has been integrated into the Company&#8217;s ongoing operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Geneva had occurred on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisitions (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">289,496</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">323,741</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,025</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">27,163</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does <em style="font: inherit;">not</em> necessarily indicate what the operating results would have been if the acquisition of Geneva had occurred on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Moreover, this information is <em style="font: inherit;">not</em> indicative of what the Company&#8217;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Geneva. The pro forma amounts have been calculated after applying the Company&#8217;s accounting policies and adjusting the results of Geneva to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Adjustments also include an increase of interest expense as if the Company&#8217;s debt obtained in connection with the acquisition of Geneva had been outstanding since <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Ameron Water Transmission Group,</b><b>&#160;</b><b>LLC</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> July&#160;</em><em style="font: inherit;">27,</em> <em style="font: inherit;">2018,</em> the Company completed the acquisition of 100% of Ameron Water Transmission Group,&#160;LLC for a purchase price of $38.1&#160;million in cash. Ameron was a major supplier of engineered welded steel pressure pipe and reinforced concrete pipe. In addition to strengthening the Company&#8217;s position in the water infrastructure market, this acquisition expanded the Company's bar-wrapped concrete cylinder pipe capabilities and added reinforced concrete pipe and T-Lock&#174;&#8212;a proprietary polyvinyl chloride (PVC) lining for concrete pipe sewer applications&#8212;to the Company&#8217;s product portfolio. In connection with the acquisition, the Company acquired pipe facilities in Tracy, California and San Luis R&#237;o Colorado, Mexico, as well as protective lining equipment in Brea, California. In <em style="font: inherit;"> December 2019, </em>the Company closed its leased facility in Brea, California.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the purchase consideration and fair value of the assets acquired and liabilities assumed as of <em style="font: inherit;"> July&#160;</em><em style="font: inherit;">27,</em> <em style="font: inherit;">2018</em> (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,887</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">12,018</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,937</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,777</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">34,827</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">320</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">68,678</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,520</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,599</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3,221</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10,463</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20,080</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">38,135</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As a result of additional information obtained during the measurement period about facts and circumstances that existed as of the acquisition date, the Company recorded measurement period adjustments during the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018</em> which resulted in a net decrease of the bargain purchase gain of $1.8&#160;million. The adjustments primarily included reclassifications between balance sheet categories and a $2.0&#160;million reduction in inventories. The Company recorded no measurement period adjustments during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The purchase consideration for this business combination was allocated to the tangible and intangible assets acquired and liabilities assumed based on their estimated fair values on the acquisition date, with the excess of the aggregate net fair value of assets acquired and liabilities assumed over the fair value of consideration transferred as the purchase price recorded as a bargain purchase gain. When it became apparent there was a potential for a bargain purchase gain, management reviewed the Ameron assets acquired and liabilities assumed as well as the assumptions utilized in estimating their fair values. Upon completion of this reassessment, the Company concluded that recording a bargain purchase gain with respect to Ameron was appropriate and required under U.S.&#160;GAAP. The Company believes the seller was motivated to complete the transaction as part of an overall repositioning of its business.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company incurred transaction costs associated with this acquisition of $2.6&#160;million during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em> These costs are included in Selling, general, and administrative expense in the Consolidated Statements of Operations.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following unaudited pro forma summary presents the consolidated results of the Company as if the acquisition of Ameron had occurred on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, 2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">200,513</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(15,102</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">This unaudited pro forma consolidated financial data is included only for the purpose of illustration and does <em style="font: inherit;">not</em> necessarily indicate what the operating results would have been if the acquisition of Ameron had occurred on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. Moreover, this information is <em style="font: inherit;">not</em> indicative of what the Company&#8217;s future operating results will be. The information prior to the acquisition is included based on prior accounting records maintained by Ameron. The pro forma amounts have been calculated after applying the Company&#8217;s accounting policies and adjusting the results of Ameron to reflect the additional depreciation and amortization that would have been charged assuming the fair value adjustments to property and equipment and intangible assets had been applied on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1</em> of the year prior to the acquisition. The unaudited pro forma financial information includes non-recurring adjustments to remove transaction costs directly attributable to the acquisition and remove the bargain purchase gain. The provision for income taxes has also been adjusted for all periods, based upon the foregoing adjustments to historical results.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="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> -URI http://asc.fasb.org/topic&amp;trid=2303972<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502527416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 4 - Discontinued Operations<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock', window );">Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">4.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>DISCONTINUED OPERATIONS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">26,</em> <em style="font: inherit;">2017,</em> the Company completed the sale of substantially all of the assets associated with the Company&#8217;s manufacturing facility in Atchison, Kansas, including all of the real and tangible personal property located at the site of that manufacturing facility. Total consideration of $37.2&#160;million in cash was paid by the buyer, resulting in a nominal gain recognized on the sale. Of the proceeds received, $0.8&#160;million was placed in escrow until it was released in <em style="font: inherit;"> February 2018 </em>and $3.7&#160;million was placed in escrow until it was released in <em style="font: inherit;"> December 2018. </em>In accordance with applicable accounting guidance, cash flows from the Company&#8217;s discontinued operations are presented separately in the Consolidated Statements of Cash Flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.</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> -URI http://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 205<br> -SubTopic 20<br> -URI http://asc.fasb.org/subtopic&amp;trid=2122178<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499311608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 );">Inventory Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: top;">
      <td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">5.</em></b></p> </td>
      <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>INVENTORIES:</b></p> </td>
     </tr>

    </tbody>
   </table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Inventories consist of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Raw materials</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">20,631</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">26,772</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Work-in-process</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,416</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,579</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finished goods</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,489</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">683</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Supplies</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,641</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,620</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total inventories</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">29,177</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">30,654</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
      </tr>

     </tbody>
    </table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>27
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501926168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Property and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, Plant and Equipment Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">6.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>PROPERTY AND EQUIPMENT:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment, net consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Land and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,773</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,480</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Buildings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">47,663</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">44,251</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Machinery and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">127,679</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">115,237</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Equipment under finance lease</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,589</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,081</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">200,704</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">184,049</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(96,684</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(86,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">104,020</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">97,805</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Construction in progress</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">6,164</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,826</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Property and equipment, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">110,184</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,631</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">All property and equipment is located in the United States, except for $20.3&#160;million and $19.8&#160;million of net property and equipment which is located in Mexico as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2018, </em>the Company sold its Monterrey, Mexico facility for net proceeds of $2.7&#160;million, resulting in a gain of $0.2&#160;million. In <em style="font: inherit;"> August 2018, </em>the Company sold property in Houston, Texas for net proceeds of $5.8&#160;million, resulting in a gain of $2.8&#160;million.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="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 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 360<br> -URI http://asc.fasb.org/topic&amp;trid=2155823<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=SL120174063-112916<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499316216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Goodwill and Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_GoodwillAndIntangibleAssetsDisclosureTextBlock', window );">Goodwill and Intangible Assets Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">7.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>GOODWILL AND </b><b>INTANGIBLE ASSETS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Goodwill</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The changes in the carrying amount of goodwill for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> were as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Acquisition of Geneva (Note 3)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company performed its annual goodwill impairment test as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> utilizing a qualitative analysis, and did <em style="font: inherit;">not</em> identify any potential impairment.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Intangible Assets</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Intangible assets consist of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Gross Carrying</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Accumulated</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Intangible</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amortization</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Assets, Net</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2020</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,409</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,634</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,775</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,225</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(720</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,505</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">329</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">238</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">12,963</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(2,445</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,518</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,378</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(827</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,132</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(452</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">680</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,510</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,279</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,231</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">During the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> intangible assets increased primarily due to the acquisition of Geneva. See Note&#160;<em style="font: inherit;">3,</em> &#8220;Business Combinations&#8221; for additional information related to this transaction.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The estimated amortization expense for each of the next <em style="font: inherit;">five</em> years and thereafter is as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,262</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,262</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,171</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,015</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,015</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,793</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total amortization expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,518</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and 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_GoodwillAndIntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498973624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Line of Credit and Long-term Debt<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_DebtDisclosureTextBlock', window );">Debt Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">8.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>LINE OF CREDIT</b><b>&#160;AND LONG-TERM DEBT</b><b>:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#8217;s Credit Agreement with Wells Fargo Bank, N.A. (&#8220;Wells Fargo&#8221;) dated <em style="font: inherit;"> October&#160;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2018</em> (&#8220;Credit Agreement&#8221;), as amended on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> by the Consent and Amendment <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">1</em> to Credit Agreement with Wells Fargo (collectively the &#8220;Amended Credit Agreement&#8221;) provides for a term loan, as well as letters of credit and revolving loans in the aggregate amount of up to $74&#160;million, subject to a borrowing base (&#8220;Revolver Commitment&#8221;). The borrowing base is calculated by applying various advance rates to eligible accounts receivable, contract assets, inventories, and equipment, subject to various exclusions, adjustments, and sublimits. The Amended Credit Agreement will expire on <em style="font: inherit;"> October&#160;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2024.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Amended Credit Agreement contains customary representations and warranties, as well as customary affirmative and negative covenants, events of default, and indemnification provisions in favor of the lender. The negative covenants include restrictions regarding the incurrence of liens and indebtedness and certain acquisitions and dispositions of assets and other matters, all subject to certain exceptions. The Amended Credit Agreement also requires the Company to regularly provide financial information to Wells Fargo and to maintain a Senior Leverage Ratio (as defined in the Amended Credit Agreement) <em style="font: inherit;">not</em> greater than 3.00 and a Fixed Charge Coverage Ratio (as defined in the Amended Credit Agreement) of at least 1.10 to <em style="font: inherit;">1.00.</em> The Company was in compliance&#160;with its financial covenants as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company's obligations under the Amended Credit Agreement are secured by a security interest in certain real property owned by the Company and its subsidiaries and substantially all of Company&#8217;s and its subsidiaries&#8217; other assets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Interest expense from revolving loan borrowings, long-term debt, and finance leases was $0.9&#160;million, net of amounts capitalized of $0.1&#160;million in <em style="font: inherit;">2020,</em> $0.5&#160;million in <em style="font: inherit;">2019,</em> and $0.6&#160;million in <em style="font: inherit;">2018.</em> A nominal amount of interest was capitalized in <em style="font: inherit;">2019</em> and <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Line of Credit (Revolving Loan)</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company had no outstanding revolving loan borrowings and $1.6&#160;million of outstanding letters of credit under the Amended Credit Agreement and additional revolving loan borrowing capacity of $53&#160;million. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019,</em> the Company had no outstanding borrowings under the Credit Agreement. Revolving loan borrowings under the Amended Credit Agreement bear interest at rates related to the daily <em style="font: inherit;">three</em> month LIBOR plus 1.5% to 2.0%. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the weighted-average interest rate for outstanding revolving loan borrowings was 1.73% and 3.43% respectively. The Amended Credit Agreement provides a mechanism for determining an alternative benchmark rate to the LIBOR, which <em style="font: inherit;"> may </em>include the Secured Overnight Financing Rate. The Amended Credit Agreement requires the payment of an unused line fee of between 0.25% and 0.375%, based on the amount by which the Revolver Commitment exceeds the average daily balance of outstanding borrowings (as defined in the Amended Credit Agreement) during any month. Such fee is payable monthly in arrears.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Long-Term Debt</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Pursuant to the Amended Credit Agreement, on <em style="font: inherit;"> March&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company entered into a term loan for $15.9&#160;million with Wells Fargo that matures on <em style="font: inherit;"> October&#160;</em><em style="font: inherit;">25,</em> <em style="font: inherit;">2024</em> and bears interest at the daily <em style="font: inherit;">three</em> month LIBOR plus 2.0% to 2.5%. The term loan requires monthly principal payments of $0.3&#160;million plus accrued interest. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the outstanding balance of the term loan was $13.8&#160;million. The Company is obligated to prepay the term loan to the extent that the outstanding principal balance at any time exceeds 60% of the fair market value of specified real property securing the loan. The Company is also obligated to prepay the term loan in an amount equal to 20% of Excess Cash Flow (as defined in the Amended Credit Agreement). The prepayment from Excess Cash Flow generated in <em style="font: inherit;">2020</em> that is required in <em style="font: inherit;">2021</em> is $4.6 million. Subject to certain limitations, the Company <em style="font: inherit;"> may </em>also voluntarily prepay all or a portion of the loan balance upon <em style="font: inherit;">ten</em> business days&#8217; written notice.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Future principal payments of long-term debt, which excludes prepayments for periods beyond <em style="font: inherit;">2021</em> that <em style="font: inherit;"> may </em>be required by Excess Cash Flow (as defined in the Amended Credit Agreement), are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,746</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,176</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,840</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total future principal payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13,762</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Unamortized debt issuance costs</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(173</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Current portion of long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(7,701</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Long-term debt, net of current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,888</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.</p></div>
<a href="javascript:void(0);" onclick="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 470<br> -URI http://asc.fasb.org/topic&amp;trid=2208564<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497610744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_nwpx_LesseeLeaseDisclosureTextBlock', window );">Lessee, Lease, Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b><em style="font: inherit;">9.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><b>LEASES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company adopted ASC Topic&#160;<em style="font: inherit;">842,</em> &#8220;Leases&#8221; (&#8220;Topic&#160;<em style="font: inherit;">842&#8221;</em>) on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2019</em> using the modified retrospective transition method which allowed it to continue to apply legacy guidance for periods prior to <em style="font: inherit;">2019.</em> The Company elected the package of transition practical expedients which, among other things, allowed it to keep the historical lease classifications and <em style="font: inherit;">not</em> reassess the lease classification for any existing leases as of the date of adoption. The Company also made an accounting policy election to apply the short-term lease exception, which allows it to keep leases with an initial term of <em style="font: inherit;">twelve</em> months or less off the balance sheet. Upon adoption of Topic&#160;<em style="font: inherit;">842,</em> the Company recognized right-of-use assets and lease liabilities for operating leases of approximately $8.0&#160;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has entered into various equipment and property leases. Certain lease agreements include renewals and/or purchase options set to expire at various dates, and certain lease agreements include rental payments adjusted periodically for inflation. The Company&#8217;s lease agreements do <em style="font: inherit;">not</em> contain any material residual value guarantees or material restrictive covenants.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company determines if an arrangement is a lease at inception. Leases with an initial term of <em style="font: inherit;">twelve</em> months or less are <em style="font: inherit;">not</em> recorded on the balance sheet; costs for these leases are recognized on a straight-line basis over the lease term. Right-of-use assets and lease liabilities are recognized based on the present value of lease payments over the lease term at commencement date. Because most of the Company's leases do <em style="font: inherit;">not</em> provide an implicit rate of return, the Company uses its asset-based lending rate in determining the present value of lease payments. Some of the Company&#8217;s lease agreements contain non-lease components, which are accounted for separately.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the Company's leases recorded on the Consolidated Balance Sheets (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases, net, included in Property and equipment <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,288</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,203</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,813</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,683</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">32,101</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,886</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,729</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,641</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">31,844</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,530</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Finance lease right-of-use assets are presented net of accumulated amortization of $1.3&#160;million and $0.9&#160;million as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Lease cost consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finance lease cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amortization of right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">422</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">435</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Interest on lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">57</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Operating lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,647</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,934</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Short-term lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">745</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,442</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Variable lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">199</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,092</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,009</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As the Company has <em style="font: inherit;">not</em> restated prior-year information for the adoption of Topic&#160;<em style="font: inherit;">842,</em> total operating lease rental expense under ASC&#160;Topic&#160;<em style="font: inherit;">840,</em> &#8220;Leases&#8221; for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018</em> was $2.7&#160;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The future maturities of lease liabilities as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Finance Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Operating Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">454</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,178</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,561</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">544</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,416</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">301</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">27,513</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total lease payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,962</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">40,845</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amount representing interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(233</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(10,730</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Present value of lease liabilities</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,729</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">30,115</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Current portion of lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(375</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2,204</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Long-term lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,354</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,911</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Current portion of finance lease liabilities are included in Accrued liabilities.</p> </td></tr>
</tbody></table>
   <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">(<em style="font: inherit;">2</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The following table summarizes the lease terms and discount rates for the lease liabilities:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average remaining lease term (years)</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.67</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">18.21</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average discount rate</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5.22</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5.40</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.36</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4.50</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">The following table presents other information related to the operating and finance leases (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px; margin-left: 0pt; margin-right: 0pt;"><tbody><tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(57</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,909</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financing cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(420</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(434</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">507</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,471</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,335</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_LesseeLeaseDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 leases of lessee.</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;">nwpx_LesseeLeaseDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498730760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 Disclosures [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">10.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>FAIR VALUE MEASUREMENTS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Fair value is defined as the price that would be received to sell an asset or paid to transfer a liability, in the principal or most advantageous market for the asset or liability, in an orderly transaction between market participants at the measurement date.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The authoritative guidance establishes a fair value hierarchy that prioritizes the inputs to valuation techniques used to measure fair value into <em style="font: inherit;">three</em> broad levels. These levels are: Level&#160;<em style="font: inherit;">1</em> (inputs are quoted prices in active markets for identical assets or liabilities); Level&#160;<em style="font: inherit;">2</em> (inputs are other than quoted prices that are observable, either directly or indirectly through corroboration with observable market data); and Level&#160;<em style="font: inherit;">3</em> (inputs are unobservable, with little or <em style="font: inherit;">no</em> market data that exists, such as internal financial forecasts). The Company is required to maximize the use of observable inputs and minimize the use of unobservable inputs when measuring fair value.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes information regarding the Company&#8217;s financial assets and liabilities that are measured at fair value on a recurring basis (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">&#160;</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 1</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 2</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 3</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>As of December 31, 2020</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,717</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,884</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">833</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,268</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">882</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The deferred compensation plan assets consist of cash and several publicly traded stock and bond mutual funds, valued using quoted market prices in active markets, classified as Level&#160;<em style="font: inherit;">1</em> within the fair value hierarchy, as well as guaranteed investment contracts, valued at principal plus interest credited at contract rates, classified as Level&#160;<em style="font: inherit;">2</em> within the fair value hierarchy. Deferred compensation plan assets are included within Other assets in the Consolidated Balance Sheets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#8217;s foreign currency forward contracts are derivatives valued using various pricing models or discounted cash flow analyses that incorporate observable market parameters, such as interest rate yield curves and currency rates, and are classified as Level&#160;<em style="font: inherit;">2</em> within the fair value hierarchy. Derivative valuations incorporate credit risk adjustments that are necessary to reflect the probability of default by the counterparty or the Company. Foreign currency forward contracts are presented at their gross fair values. Foreign currency forward contract assets are included within Prepaid expenses and other and foreign currency forward contract liabilities are included within Accrued liabilities in the Consolidated Balance Sheets.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The net carrying amounts of cash and cash equivalents, trade and other receivables, accounts payable, accrued liabilities, and revolving loan borrowings approximate fair value due to the short-term nature of these instruments. The Company is obligated to repay the carrying value of the Company&#8217;s long-term debt. The fair value of the Company&#8217;s long-term debt is calculated using interest rates for the Company&#8217;s existing debt arrangements which are classified as Level&#160;<em style="font: inherit;">2</em> inputs within the fair value hierarchy. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the fair value of the Company&#8217;s long-term debt approximates the carrying value as the borrowings bear interest based on current market rates.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>32
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497586104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Derivative Instruments and Hedging Activities<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 and Hedging Activities Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">11.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>DERIVATIVE INSTRUMENTS AND HEDGING ACTIVITIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">For each foreign currency forward contract entered into in which the Company seeks to obtain cash flow hedge accounting treatment, the Company formally documents all relationships between hedging instruments and hedged items, as well as its risk management objective and strategy for undertaking the hedge transaction, the nature of the risk being hedged, how the hedging instrument&#8217;s effectiveness in offsetting the hedged risk will be assessed prospectively and retrospectively, and a description of the method of measuring ineffectiveness. This process includes linking all foreign currency forward contracts to specific firm commitments or forecasted transactions and designating the foreign currency forward contracts as cash flow hedges. The Company also formally assesses, both at the hedge&#8217;s inception and on an ongoing basis, whether the foreign currency forward contracts that are used in hedging transactions are highly effective in offsetting changes in cash flows of hedged items. The effective portion of these hedged items is reflected in Unrealized gain (loss) on cash flow hedges on the Consolidated Statements of Comprehensive Income. If it is determined that a foreign currency forward contract is <em style="font: inherit;">not</em> highly effective, or that it has ceased to be a highly effective hedge, the Company is required to discontinue hedge accounting with respect to that foreign currency forward contract prospectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the total notional amount of the foreign currency forward contracts designated as cash flow hedges was $15.3&#160;million (<span style="-sec-ix-hidden:c70014698">CAD$19.5</span>&#160;million) and $6.1&#160;million (<span style="-sec-ix-hidden:c70014700">CAD$7.9</span>&#160;million), respectively. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company's foreign currency forward contracts mature at various dates through <em style="font: inherit;"> May 2022 </em>and are subject to an enforceable master netting arrangement.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> all foreign currency forward contracts were designated as cash flow hedges. For the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> gains (losses) recognized in Net sales from foreign currency forward contracts <em style="font: inherit;">not</em> designated as hedging instruments were $(0.6)&#160;million, $(0.1)&#160;million, and $0.2&#160;million, respectively. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> unrealized pretax losses on outstanding foreign currency forward contracts in Accumulated other comprehensive loss was $(0.1)&#160;million, of which approximately $0 is expected to be reclassified to Net sales within the next <em style="font: inherit;">twelve</em> months as a result of underlying hedged transactions also being recorded in Net sales. See Note&#160;<em style="font: inherit;">17,</em> &#8220;Accumulated Other Comprehensive Loss&#8221; for additional quantitative information regarding foreign currency forward contract gains and losses.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498776920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Retirement Plans<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">Retirement Benefits [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">12.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>RETIREMENT PLANS:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Defined Contribution Plan</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has a defined contribution retirement plan that covers substantially all of its employees and provides for a Company match of up to 50% of the <em style="font: inherit;">first</em> 8%, 6%, and 6% of employee contributions to the plan, subject to certain limitations, for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively. The defined contribution retirement plan offers 23&#160;investment options.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Defined Benefit Plans</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <span style="-sec-ix-hidden:c70014736">two</span> noncontributory defined benefit plans. Effective <em style="font: inherit;">2001,</em> both plans were frozen and participants were fully vested in their accrued benefits as of the date each plan was frozen. <em style="font: inherit;">No</em> additional participants can be added to the plans and <em style="font: inherit;">no</em> additional service can be earned by participants subsequent to the date the plans were frozen. The funding policy for both of these plans is based on current plan costs plus amortization of the unfunded plan liability. All current employees covered by these plans are now covered by the defined contribution retirement plan.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the Company had recorded, in accordance with the actuarial valuations, an accrued pension liability of $1.6&#160;million in Other long-term liabilities and an unrecognized actuarial loss, net of tax, of $1.8&#160;million&#160;in Accumulated other comprehensive loss. Additionally, as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the projected and accumulated benefit obligation was $6.5&#160;million and $6.4&#160;million, respectively, and the fair value of plan assets was $4.9&#160;million and $4.8&#160;million, respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The net periodic benefit cost for each of the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was approximately&#160;$0. The weighted-average discount rates used to measure the projected benefit obligation were 2.04% and 2.83% as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The plan assets are invested in pooled separate accounts stated at fair value based on the daily net asset value of the account and are therefore <em style="font: inherit;">not</em> categorized in the fair value hierarchy. The expected weighted-average long-term rate of return on plan assets was 7.0% and 7.5% as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Non-qualified Retirement Savings Plan</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has a deferred compensation plan that covered officers and selected highly compensated employees until it was frozen in <em style="font: inherit;">2016.</em> The deferred compensation plan generally matched up to 50% of the <em style="font: inherit;">first</em> $10,000 of officer contributions to the plan and the <em style="font: inherit;">first</em> $5,000 of other selected highly compensated employee contributions, subject to certain limitations. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> deferred compensation plan balances of $4.7&#160;million and $5.2&#160;million, respectively, were recorded in Other assets and Other long-term liabilities.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Total expense for all retirement plans for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was $1.6&#160;million, $1.2&#160;million, and $0.9&#160;million, respectively.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 retirement benefits.</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 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=118257860&amp;loc=d3e4179-114921<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section S99<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=21916913&amp;loc=d3e273930-122802<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -URI http://asc.fasb.org/topic&amp;trid=2235017<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 60<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6414203&amp;loc=d3e39689-114964<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497586104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Share-based Compensation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Share-based Payment Arrangement [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">13.</em></b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>SHARE-BASED COMPENSATION:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <span style="-sec-ix-hidden:c70014794">one</span> active stock incentive plan for employees and directors, the <em style="font: inherit;">2007</em> Stock Incentive Plan, which provides for awards of stock options to purchase shares of common stock, stock appreciation rights, restricted and unrestricted shares of common stock, RSUs, and PSAs.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes share-based compensation expense recorded (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cost of sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">822</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">383</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">12</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Selling, general, and administrative expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,266</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">269</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,088</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,709</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">281</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">There were 354,022&#160;shares of common stock available for future issuance under the Company&#8217;s stock incentive plan as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> assuming the outstanding PSAs vest at the target level of 100%.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Stock Options Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#8217;s stock incentive plan&#160;provides that options become exercisable according to vesting schedules, which range from immediate to ratably over a 60-month period. Options terminate <span style="-sec-ix-hidden:c70014802">ten</span> years from the date of grant. There were no options granted during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> or <em style="font: inherit;">2018.</em> During the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> 24,000 stock options at a weighted-average exercise price of $24.15 were exercised. The total intrinsic value of options exercised during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> was $0.1&#160;million. There were no options exercised during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019</em> or <em style="font: inherit;">2018.</em> As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> there were no stock options outstanding.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Restricted Stock Units and Performance Share Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company&#8217;s stock incentive plan&#160;provides for equity instruments, such as RSUs and PSAs, which grant the right to receive a specified number of shares over a specified period of time. RSUs are service-based awards and vest according to vesting schedules, which range from immediate to ratably over a <span style="-sec-ix-hidden:c70014825">three</span>-year period. PSAs are service-based awards that vest according to the terms of the grant and have performance-based payout conditions.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes the Company&#8217;s RSU and PSA activity:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Number of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>RSUs and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>PSAs </b><span style="font-family:Times New Roman;font-size:8pt;"><b>(1)</b></span></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Weighted-</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Average Grant</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Date Fair</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">85,170</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">97,834</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">26.61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Unvested RSUs and PSAs canceled</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,752</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs vested <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(49,680</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">129,572</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">25.86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The number of PSAs disclosed in this table are at the target level of 100%.</p> </td></tr>
</tbody></table>
   <p style="margin: 0; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">2</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">For the PSAs vested on <em style="font: inherit;"> March&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020;</em> the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of 136%,&#160;based on the performance-based conditions achieved.</p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The unvested balance of RSUs and PSAs as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> includes approximately&#160;91,000&#160;PSAs at a target level of performance. The vesting of these awards is subject to the achievement of specified performance-based conditions, and the actual number of common shares that will ultimately be issued will be determined by multiplying this number of PSAs by a payout percentage ranging from 0% to 200%.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The weighted-average grant date fair value of RSUs granted during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019</em> was $26.61 and $23.56, respectively. The weighted-average grant date fair value of PSAs granted during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> were $26.61, $23.56 and $19.97, respectively. There were no RSUs granted during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em> The total fair value of RSUs and PSAs vested during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> was $2.0&#160;million, $0, and $1.6&#160;million, respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> unrecognized compensation expense related to the unvested portion of the Company&#8217;s RSUs and PSAs was $2.5&#160;million, which is expected to be recognized over a weighted-average period of 1.6&#160;years.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Stock Awards</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">For the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> stock awards of 17,442&#160;shares, 11,924&#160;shares, and 11,172&#160;shares, respectively, were granted to non-employee directors, which vested immediately upon issuance. The Company recorded compensation expense based on the weighted-average fair market value per share of the awards on the grant date of $25.81 in <em style="font: inherit;">2020,</em> $25.16 in <em style="font: inherit;">2019,</em> and $21.48 in <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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> -URI http://asc.fasb.org/topic&amp;trid=2228938<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498646792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies Disclosure [Text Block]</a></td>
<td class="text">
   <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">14</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>COMMITMENTS AND CONTINGENCIES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Portland Harbor Superfund Site</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2000, </em>a section of the lower Willamette River known as the Portland Harbor Superfund Site was included on the National Priorities List at the request of the United States Environmental Protection Agency (&#8220;EPA&#8221;). While the Company&#8217;s Portland, Oregon manufacturing facility does <em style="font: inherit;">not</em> border the Willamette River, an outfall from the facility&#8217;s stormwater system drains into a neighboring property&#8217;s privately owned stormwater system and slip. Also in <em style="font: inherit;"> December 2000, </em>the Company was notified by the EPA and the Oregon Department of Environmental Quality (&#8220;ODEQ&#8221;) of potential liability under the Comprehensive Environmental Response, Compensation, and Liability Act (&#8220;CERCLA&#8221;). A remedial investigation and feasibility study of the Portland Harbor Superfund Site was directed by a group of 14&#160;potentially responsible parties known as the Lower Willamette Group under agreement with the EPA. The EPA finalized the remedial investigation report in <em style="font: inherit;"> February 2016, </em>and the feasibility study in <em style="font: inherit;"> June 2016, </em>which identified multiple remedial alternatives. In <em style="font: inherit;"> January 2017, </em>the EPA issued its Record of Decision selecting the remedy for cleanup at the Portland Harbor Superfund Site, which it believes will cost approximately $1&#160;billion and 13&#160;years to complete. The EPA has <em style="font: inherit;">not</em> yet determined who is responsible for the costs of cleanup or how the cleanup costs will be allocated among the more than 150&#160;potentially responsible parties. Because of the large number of potentially responsible parties and the variability in the range of remediation alternatives, the Company is unable to estimate an amount or an amount within a range of costs for its obligation with respect to the Portland Harbor Superfund Site matters, and <em style="font: inherit;">no</em> further adjustment to the Consolidated Financial Statements has been recorded as of the date of this filing.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The ODEQ is separately providing oversight of voluntary investigations and source control activities by the Company involving the Company's site, which are focused on controlling any current &#8220;uplands&#8221; releases of contaminants into the Willamette River. <em style="font: inherit;">No</em> liabilities have been established in connection with these investigations because the extent of contamination and the Company's responsibility for the contamination have <em style="font: inherit;">not</em> yet been determined.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Concurrent with the activities of the EPA and the ODEQ, the Portland Harbor Natural Resources Trustee Council (&#8220;Trustees&#8221;) sent some or all of the same parties, including the Company, a notice of intent to perform a Natural Resource Damage Assessment (&#8220;NRDA&#8221;) for the Portland Harbor Superfund Site to determine the nature and extent of natural resource damages under CERCLA Section&#160;<em style="font: inherit;">107.</em> The Trustees for the Portland Harbor Superfund Site consist of representatives from several Northwest Indian Tribes, <em style="font: inherit;">three</em> federal agencies, and <em style="font: inherit;">one</em> state agency. The Trustees act independently of the EPA and the ODEQ. The Trustees have encouraged potentially responsible parties to voluntarily participate in the funding of their injury assessments and several of those parties have agreed to do so. In <em style="font: inherit;"> June 2014, </em>the Company agreed to participate in the injury assessment process, which included funding $0.4&#160;million of the assessment. The Company has <em style="font: inherit;">not</em> assumed any additional payment obligations or liabilities with the participation with the NRDA. It is uncertain whether the Company will enter into an early settlement for natural resource damages or what costs it <em style="font: inherit;"> may </em>incur in any such early settlement.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> January 2017, </em>the Confederated Tribes and Bands of the Yakama Nation, a Trustee until they withdrew from the council in <em style="font: inherit;">2009,</em> filed a complaint against the potentially responsible parties including the Company to recover costs related to their own injury assessment and compensation for natural resources damages. The Company does <em style="font: inherit;">not</em> have sufficient information to determine the likelihood of a loss in this matter or the amount of damages that could be allocated to the Company.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has insurance policies for defense costs, as well as indemnification policies it believes will provide reimbursement for the remediation assessed. However, the Company can provide <em style="font: inherit;">no</em> assurance that those policies will cover all of the costs which the Company <em style="font: inherit;"> may </em>incur.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>All Sites</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company operates its facilities under numerous governmental permits and licenses relating to air emissions, stormwater runoff, and other environmental matters. The Company&#8217;s operations are also governed by many other laws and regulations, including those relating to workplace safety and worker health, principally the Occupational Safety and Health Act and regulations there under which, among other requirements, establish noise and dust standards. The Company believes it is in material compliance with its permits and licenses and these laws and regulations, and the Company does <em style="font: inherit;">not</em> believe that future compliance with such laws and regulations will have a material adverse effect on its financial position, results of operations, or cash flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Other Contingencies and Legal Proceedings</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">From time to time, the Company is involved in litigation relating to claims arising out of its operations in the normal course of its business. The Company maintains insurance coverage against potential claims in amounts that are believed to be adequate. To the extent that insurance does <em style="font: inherit;">not</em> cover legal, defense, and indemnification costs associated with a loss contingency, the Company records accruals when such losses are considered probable and reasonably estimable. The Company believes that it is <em style="font: inherit;">not</em> presently a party to litigation, the outcome of which would have a material adverse effect on its business, financial condition, results of operations, or cash flows.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> April&#160;</em><em style="font: inherit;">21,</em> <em style="font: inherit;">2019,</em> there was an accidental fire at the Company&#8217;s Saginaw, Texas facility which resulted in damage to the coatings building. There were <em style="font: inherit;">no</em> injuries, but the ability to coat at this facility was impaired while the Company repaired the damage. The Company&#8217;s other production locations were deployed to absorb the lost production that resulted. The Company has insurance coverage in place covering, among other things, business interruption and property damage up to certain specified amounts, and worked with its insurance company to restore the facility to full service as safely and quickly as possible. The Saginaw facility resumed operations in <em style="font: inherit;"> October 2019. </em>The Company received $1.4&#160;million of business interruption insurance recovery (net of incremental production costs) during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and incurred $1.6&#160;million of incremental production costs (net of business interruption insurance recovery) during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019,</em> which were recorded in Cost of sales.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Guarantees</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has entered into certain letters of credit that total $1.6&#160;million as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020.</em> The letters of credit relate to workers&#8217; compensation insurance.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 commitments and contingencies.</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 450<br> -URI http://asc.fasb.org/topic&amp;trid=2127136<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -URI http://asc.fasb.org/topic&amp;trid=2144648<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559207&amp;loc=d3e25336-109308<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 440<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121559207&amp;loc=d3e25336-109308<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497225736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Revenue<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 from Contract with Customer [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">15</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>REVENUE:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company adopted ASC&#160;Topic&#160;<em style="font: inherit;">606,</em> &#8220;Revenue from Contracts with Customers,&#8221; (&#8220;Topic&#160;<em style="font: inherit;">606&#8221;</em>) on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> using the modified retrospective method applied to those contracts that were <em style="font: inherit;">not</em> completed as of that date. The cumulative effect of adopting Topic&#160;<em style="font: inherit;">606</em> was a $0.9&#160;million decrease to Retained earnings as of <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> due to a change in the timing of revenue recognition on certain costs under the new revenue standard, as well as, to a lesser extent, a change in the costs included in the provisions for losses on uncompleted contracts. Under the modified retrospective method, periods prior to <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2018</em> were <em style="font: inherit;">not</em> adjusted and continue to be reported in accordance with accounting standards in effect for those periods.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net sales by geographic region, based on the location of the customer, were as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales by geographic region:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">254,956</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">252,797</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">161,415</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Canada</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,951</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">26,520</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10,734</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">285,907</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">One customer accounted for 16% and 23% of total Net sales for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> respectively. No customer accounted for <em style="font: inherit;">10%</em> or more of total Net sales for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revisions in contract estimates resulted in an increase (decrease) in revenue of $2.2&#160;million, $(1.2)&#160;million, and $(0.2)&#160;million for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Disaggregation of Revenue</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table disaggregates revenue by recognition over time or at a point in time, as the Company believes it best depicts how the nature, amount, timing, and uncertainty of its revenue and cash flows are affected by economic factors (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Over time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">241,690</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Point in time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">44,217</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">285,907</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Contract Assets and Liabilities</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The difference between the opening and closing balances of the Company&#8217;s Contract assets and Contract liabilities primarily results from the timing difference between the Company&#8217;s performance and billings, and during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> an increase due to the acquisition of Ameron of $12.0&#160;million of Contract assets and $0.1&#160;million of Contract liabilities. The changes in the Contract assets and Contract liabilities balances during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018</em> were <em style="font: inherit;">not</em> materially affected by any other factors.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognized revenue that was included in the Contract liabilities balance at the beginning of each period of $12.3&#160;million, $3.7&#160;million, and $2.6&#160;million during the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> respectively.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Backlog</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Backlog represents the balance of remaining performance obligations under signed contracts for water infrastructure steel pipe products for which revenue is recognized over time. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> backlog was approximately&#160;$167&#160;million. The Company expects to recognize approximately&#160;79% of the remaining performance obligations in <span style="-sec-ix-hidden:c70014989">2021,</span> 20% in <span style="-sec-ix-hidden:c70014991">2022,</span> and the balance thereafter.</p>
  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>37
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498723640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 Tax Disclosure [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">16</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>INCOME TAXES:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The United States and foreign components of Income before income taxes are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">24,768</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">32,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">16,207</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">866</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">396</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">853</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25,634</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">32,640</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">17,060</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The components of Income tax expense (benefit) are as follows (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Current:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">958</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">174</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(117</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,342</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">99</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">243</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">439</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total current income tax expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,543</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">597</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,380</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,597</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,954</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(386</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">561</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(807</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">47</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(17</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">132</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: 9pt;">Total deferred income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,041</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3,629</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">6,584</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,738</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3,252</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The difference between the Company&#8217;s effective income tax rate and the federal statutory income tax rate is explained as follows (dollar amounts in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Income tax expense at federal statutory rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,383</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,854</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,583</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">State expense (benefit), net of federal income tax effect</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">953</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,261</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(218</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Federal and state income tax credits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Change in valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(181</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,564</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,618</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Tax windfall on share-based compensation</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(369</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(4,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Nondeductible expenses</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; text-align: right;">447</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">427</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign rate differential</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">78</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">36</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">77</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(96</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">175</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">101</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">6,584</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,738</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3,252</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effective income tax rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25.7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">14.5</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(19.1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)%</p> </td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#160;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The income tax effect of temporary differences that give rise to significant portions of deferred income tax assets and liabilities is presented below (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued employee benefits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,525</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,089</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">73</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">147</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade receivable, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">958</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">788</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net operating loss carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,231</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Tax credit carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,699</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,173</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">389</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">509</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">10,875</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">15,097</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(6,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,647</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,971</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Contract assets, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,366</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,703</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(12,029</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(10,578</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,737</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(226</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(587</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(17,021</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(13,094</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(12,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(4,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Amounts are presented in the Consolidated Balance Sheets as follows:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income tax assets, included in Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">107</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">142</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(12,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(4,265</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(12,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(4,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>


   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In assessing the ability to realize deferred income tax assets, management considers whether it is more likely than <em style="font: inherit;">not</em> that some portion or all of the deferred income tax assets will <em style="font: inherit;">not</em> be realized. The ultimate realization of deferred income tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become deductible. Management considers the scheduled reversal of deferred income tax liabilities, projected future taxable income, taxable income in carryback periods, and tax planning strategies in making this assessment. Because the Company has a recent history of generating cumulative losses, management did <em style="font: inherit;">not</em> consider projections of future taxable income as persuasive evidence for the recoverability of its deferred income tax assets. The Company believes it is more likely than <em style="font: inherit;">not</em> it will realize the benefits of its deductible differences as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> net of any valuation allowance.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company had approximately $2.0&#160;million of federal income tax credit carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015027">2023</span> and <span style="-sec-ix-hidden:c70015028">2034,</span> and $1.0&#160;million of capital loss carryforwards, which expire in <span style="-sec-ix-hidden:c70015030">2024.</span> As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company also had approximately&#160;$30.0&#160;million of state net operating loss carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015034">2021</span>&#160;and <span style="-sec-ix-hidden:c70015035">2038,</span> and state income tax credit carryforwards of $4.2&#160;million, which begin to expire in <span style="-sec-ix-hidden:c70015037">2021.</span> As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> the Company also had approximately&#160;$4.4&#160;million of foreign net operating loss carryforwards, which expire on various dates between <span style="-sec-ix-hidden:c70015041">2023</span> and <span style="-sec-ix-hidden:c70015042">2030.</span></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company files income tax returns in the United States Federal jurisdiction, in a limited number of foreign jurisdictions, and in many state jurisdictions. With few exceptions, the Company is <em style="font: inherit;">no</em> longer subject to United States Federal, state, or foreign income tax examinations for years before <em style="font: inherit;">2016.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">A summary of the changes in the unrecognized income tax benefits is presented below (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, beginning of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Increases for positions taken in the current year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">234</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, end of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>&#160;</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company does <em style="font: inherit;">not</em> believe it is reasonably possible that the total amounts of unrecognized income tax benefits will change in the following <em style="font: inherit;">twelve</em> months; however, actual results could differ from those currently expected. Effectively all of the unrecognized income tax benefits would affect the Company&#8217;s effective income tax rate if recognized at some point in the future.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognizes interest and penalties related to uncertain income tax positions in Income tax expense (benefit). As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> the Company had <span style="-sec-ix-hidden:c70015050"><span style="-sec-ix-hidden:c70015051">no</span></span> accrued interest related to uncertain income tax positions. Total interest for uncertain income tax positions did <em style="font: inherit;">not</em> change materially in <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> or <em style="font: inherit;">2018.</em></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">On <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">22,</em> <em style="font: inherit;">2017,</em> the Tax Cuts and Jobs Act of <em style="font: inherit;">2017</em> (&#8220;TCJA&#8221;) was signed into law making significant changes to the Internal Revenue Code. Changes include, but are <em style="font: inherit;">not</em> limited to, a federal corporate income tax rate decrease from 35% to 21% effective for tax years beginning after <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2017,</em> the transition of U.S. international taxation from a worldwide tax system to a territorial system, and a <em style="font: inherit;">one</em>-time transition tax on the mandatory deemed repatriation of cumulative foreign earnings as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2017.</em> Additionally, Staff Accounting Bulletin <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">118</em> (&#8220;SAB&#160;<em style="font: inherit;">118&#8221;</em>) was issued to address the application of U.S. GAAP in situations when a registrant does <em style="font: inherit;">not</em> have the necessary information available, prepared, or analyzed (including computations) in reasonable detail to complete the accounting for certain income tax effects of the TCJA. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">22,</em> <em style="font: inherit;">2018,</em> the end of the measurement period for purposes of SAB&#160;<em style="font: inherit;">118,</em> the Company had completed the analysis based on available legislative updates relating to the TCJA, which did <em style="font: inherit;">not</em> result in material changes from the amount recorded in <em style="font: inherit;">2017.</em> On <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2019,</em> the Company adopted Accounting Standards Update&#160;<em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">02,</em> &#8220;Income Statement&#8212;Reporting Comprehensive Income (Topic&#160;<em style="font: inherit;">220</em>): Reclassification of Certain Tax Effects from Accumulated Other Comprehensive Income&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">02&#8221;</em>), which resulted in a reclassification of $0.2&#160;million from accumulated other comprehensive income to retained earnings for stranded tax effects resulting from the TCJA.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>38
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498943736">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Accumulated Other Comprehensive Loss<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_ComprehensiveIncomeNoteTextBlock', window );">Comprehensive Income (Loss) Note [Text Block]</a></td>
<td class="text">
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;">
    <tbody>
     <tr style="vertical-align: top;">
      <td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">17.</em></b></p> </td>
      <td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>ACCUMULATED OTHER COMPREHENSIVE LOSS:</b></p> </td>
     </tr>

    </tbody>
   </table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accumulated other comprehensive loss consists of the following (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment, net of income tax benefit of $679 and $671</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,795</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,770</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(71</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(44</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,866</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,814</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table summarizes changes in the components of Accumulated other comprehensive loss (in thousands). All amounts are net of income tax:</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Pension Liability Adjustment</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Unrealized</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss&#160;on Cash</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Flow Hedges</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2019</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,770</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(44</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,814</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Other comprehensive loss before reclassifications</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(308</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(311</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">281</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">259</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Net current period adjustments to Other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(25</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(27</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(52</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2020</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,795</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(71</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,866</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The following table provides additional detail about Accumulated other comprehensive loss components that were reclassified to the Consolidated Statements of Operations (in thousands):</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount reclassified from Accumulated Other</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Comprehensive Loss</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Affected line item in the</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Details about Accumulated Other</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Consolidated Statements</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0); width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Comprehensive Loss Components</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0); width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>of Operations</b></p> </td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net periodic pension cost:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(16</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(11</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(11</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Cost of sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Non-service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">46</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(15</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">52</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Other income</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(8</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">49</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Unrealized gain (loss) on cash flow hedges:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Gain (loss) on cash flow hedges</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(378</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Net sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">97</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(281</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">12</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Total reclassifications for the period</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(259</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(15</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">61</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

     </tbody>
    </table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNoteTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 comprehensive income, which includes, but is not limited to, 1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -URI http://asc.fasb.org/topic&amp;trid=2134417<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(21))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395209&amp;loc=SL114868664-224227<br><br>Reference 3: 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(23))<br> -URI http://asc.fasb.org/extlink&amp;oid=120399700&amp;loc=SL114874048-224260<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(19))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400993&amp;loc=SL114874131-224263<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNoteTextBlock</td>
</tr>
<tr>
<td style="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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498981656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Restructuring<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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 and Related Activities Disclosure [Text Block]</a></td>
<td class="text">
   <p style="margin: 0pt; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</p>
   <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 36pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b><em style="font: inherit;">18</em></b><b>.</b></p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><b>RESTRUCTURING:</b></p> </td></tr>
</tbody></table>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2018, </em>the Company announced its plan to close its leased manufacturing facility in Salt Lake City, Utah and move the production to its facility in St.&#160;Louis, Missouri, which was completed during the <em style="font: inherit;">second</em> quarter of <em style="font: inherit;">2018.</em> Also in <em style="font: inherit;"> March 2018, </em>the Company announced its plan to close its manufacturing facility in Monterrey, Mexico. Production ceased early in the <em style="font: inherit;">second</em> quarter of <em style="font: inherit;">2018,</em> and the facility was sold in <em style="font: inherit;"> December 2018. </em>The Company incurred restructuring expense of $1.4&#160;million during the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which includes employee severance and termination related restructuring expense of $0.6&#160;million and expense related to demobilization activities of $0.8&#160;million.</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>&#160;</b></p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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>40
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692602282920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_DisclosureTextBlockAbstract', window );"><strong>Notes to Financial Statements</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_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock', window );">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</a></td>
<td class="text">
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: right;"><b>Schedule II</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>NORTHWEST PIPE COMPANY</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b><a href="#" id="sched2" title="sched2"/>VALUATION AND QUALIFYING ACCOUNTS</b></p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">(Dollars in thousands)</p>
   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;">&#160;</p>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at Beginning of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Charged to</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Profit and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Deduction</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>from</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Reserves</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>End of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2020:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">430</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(464</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;">767</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">240</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(138</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2019:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">660</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">312</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(171</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">345</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,652</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2018:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">477</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">449</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(266</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">660</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">10,413</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,785</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,765</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

   <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: center;"><b>&#160;</b></p>

  <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 valuation and qualifying accounts and reserves.</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 SEC<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 12<br> -Subsection 09<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 4<br> -Subparagraph (SX 210.12-09)<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-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;">srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DisclosureTextBlockAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisclosureTextBlockAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502598280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_ConsolidationPolicyTextBlock', window );">Consolidation, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Basis of Consolidation and Presentation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Consolidated Financial Statements are expressed in United States Dollars and include the accounts of the Company and its subsidiaries over which the Company exercises control as of the financial statement date. Intercompany accounts and transactions have been eliminated. Certain amounts from the prior year financial statements have been reclassified in order to conform to the current year presentation.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PriorPeriodReclassificationAdjustmentDescription', window );">Reclassification, Comparability Adjustment [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Immaterial Correction of Error</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recorded revenue of $1.2&#160;million during the <em style="font: inherit;">three</em> and <em style="font: inherit;">twelve</em> months ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> which should have been recorded in the <em style="font: inherit;">three</em> months ended <em style="font: inherit;"> March&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> The misstatement in the timing of revenue recognition was due to an error in the measurement of costs incurred to date relative to estimated total direct costs at an acquired Ameron Water Transmission Group,&#160;LLC (&#8220;Ameron&#8221;) facility. Management concluded that this out of period adjustment was <em style="font: inherit;">not</em> material to the consolidated financial results for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019</em> or <em style="font: inherit;">2018.</em></p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;"><b>Use of Estimates</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The preparation of the Consolidated Financial Statements in conformity with accounting principles generally accepted in the United States of America (&#8220;U.S.&#160;GAAP&#8221;) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities as of the date of the financial statements and the reported amounts of revenues and expenses during the reporting period. The Company bases its estimates on historical experience and on various other assumptions that are believed to be reasonable under the circumstances. On an ongoing basis, the Company evaluates all of its estimates, including those related to business combinations, allowance for doubtful accounts, inventories, property and equipment (including depreciation and valuation), goodwill, intangible assets, revenue recognition, share-based compensation, income taxes, and litigation and other contingencies. Actual results <em style="font: inherit;"> may </em>differ from these estimates under different assumptions or conditions.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Combinations Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Business Combinations</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Business combinations are accounted for under the acquisition method which requires identifiable assets acquired and liabilities assumed in the business acquired be recognized and measured at fair value on the acquisition date, which is the date that the acquirer obtains control of the acquired business. The amount by which the fair value of consideration transferred as the purchase price exceeds the net fair value of assets acquired and liabilities assumed is recorded as goodwill. The amount by which the net fair value of assets acquired and liabilities assumed exceeds the fair value of consideration transferred as the purchase price is recorded as a bargain purchase gain. Acquisition-related transaction costs are expensed as incurred.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">These estimates are inherently uncertain and unpredictable. In addition, unanticipated events and circumstances <em style="font: inherit;"> may </em>occur which <em style="font: inherit;"> may </em>affect the accuracy or validity of such estimates. As a result, during the measurement period, which <em style="font: inherit;"> may </em>be up to <em style="font: inherit;">one</em> year from the acquisition date, the Company <em style="font: inherit;"> may </em>record adjustments to the assets acquired and liabilities assumed with the corresponding offset to goodwill or bargain purchase gain. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the Company&#8217;s Consolidated Statements of Operations.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash and Cash Equivalents, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Cash and Cash Equivalents</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Cash and cash equivalents consist of cash and short-term, highly-liquid investments with maturities of <em style="font: inherit;">three</em> months or less when purchased.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReceivablesPolicyTextBlock', window );">Receivable [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Receivables and Allowance for Doubtful Accounts</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Trade receivables are reported on the Consolidated Balance Sheets net of doubtful accounts. The Company maintains allowances for estimated losses resulting from the inability of its customers to make required payments or from contract disputes. The amounts of such allowances are based on historical experience and management&#8217;s judgment. The Company will write down or write off a receivable account once the account is deemed uncollectible. If the customers&#8217; financial conditions were to deteriorate resulting in their inability to make payments, or if contract disputes were to escalate, additional allowances <em style="font: inherit;"> may </em>need to be recorded which would result in additional expenses being recorded for the period in which such determination was made.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock', window );">Contract Assets and Liabilities, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Contract Assets and Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Contract assets primarily represent revenue earned over time but <em style="font: inherit;">not</em> yet billable based on the terms of the contracts. These amounts will be billed based on the terms of the contracts, which can include certain milestones, partial shipments, or completion of the contracts. Payment terms of amounts billed vary based on the customer, but are typically due within <em style="font: inherit;">30</em>&#160;days of invoicing. Contract liabilities represent advance billings on contracts, typically for steel.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventory, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Inventories</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Inventories are stated at the lower of cost and net realizable value. The cost of raw material inventories of steel is either on a specific identification basis or on an average cost basis. The cost of all other raw material inventories, as well as work-in-process and supplies, is on an average cost basis. The cost of finished goods uses the <em style="font: inherit;">first</em>-in, <em style="font: inherit;">first</em>-out method of accounting.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant and Equipment, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Property and Equipment</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Property and equipment are recorded at cost. Maintenance and repairs are expensed as incurred, and costs of new equipment and buildings, as well as costs of expansions or refurbishment of existing equipment and buildings, including interest where applicable, are capitalized. Depreciation and amortization are determined by the units of production method for most equipment and by the straight-line method for the remaining assets based on the estimated useful lives of the related assets. Estimated useful lives by major classes of property and equipment are as follows: Land improvements (15&#160;&#8211; 30&#160;years); Buildings (20&#160;&#8211; 40&#160;years); and Machinery and equipment (3&#160;&#8211; 30&#160;years). Depreciation expense calculated under the units of production method <em style="font: inherit;"> may </em>be less than, equal to, or greater than depreciation expense calculated under the straight-line method due to variances in production levels. Upon disposal, costs and related accumulated depreciation of the assets are removed from the accounts and resulting gains or losses are reflected in operating expenses. The Company leases certain equipment under long-term finance leases, which are being amortized on a straight-line basis over the shorter of its useful life or the lease term.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company assesses impairment of property and equipment whenever changes in circumstances indicate that the carrying values of the asset or asset group(s) <em style="font: inherit;"> may </em><em style="font: inherit;">not</em> be recoverable. The asset group is the lowest level at which identifiable cash flows are largely independent of the cash flows of other groups of assets or liabilities. The recoverable value of a long-lived asset group is determined by estimating future undiscounted cash flows using assumptions about the expected future operating performance of the Company.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Goodwill</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Goodwill represents the excess of purchase price over the assigned fair values of the assets and liabilities assumed in conjunction with an acquisition. Goodwill is reviewed for impairment annually as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> or whenever events occur or circumstances change that indicate goodwill <em style="font: inherit;"> may </em>be impaired. In testing goodwill for impairment, the Company has the option to perform a qualitative assessment to determine whether the existence of events or circumstances indicate that it is more-likely-than-<em style="font: inherit;">not</em> (more than <em style="font: inherit;">50%</em>) that the fair value of a reporting unit is less than its carrying amount. When performing a qualitative assessment, the Company evaluates factors such as industry and market conditions, cost factors, overall financial performance, and other relevant entity specific events and changes. If the qualitative assessment indicates that it is more-likely-than-<em style="font: inherit;">not</em> that the fair value of the reporting unit is less than its carrying amount, or if the Company chooses <em style="font: inherit;">not</em> to perform the qualitative assessment, then a quantitative assessment is performed to determine the reporting unit&#8217;s fair value. If the reporting unit&#8217;s carrying value exceeds its fair value, then an impairment loss is recognized for the amount of the excess of the carrying amount over the reporting unit&#8217;s fair value, <em style="font: inherit;">not</em> to exceed the total amount of goodwill allocated to the reporting unit.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy', window );">Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Intangible Assets</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Intangible assets consist primarily of customer relationships and trade names and trademarks recorded as the result of acquisition activity. Intangible assets are amortized using the straight-line method over estimated useful lives ranging from 3&#160;to 15&#160;years.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_WorkersCompensationInsurancePolicyTextBlock', window );">Workers Compensation Insurance [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Workers Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company is self-insured, or maintains high deductible policies, for losses and liabilities associated with workers compensation claims. Losses are accrued based upon the Company&#8217;s estimates of the aggregate liability for claims incurred using historical experience and certain actuarial assumptions followed in the insurance industry. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> and <em style="font: inherit;">2019,</em> workers compensation reserves recorded were $1.7&#160;million, of which $0.2&#160;million and $0.3&#160;million, respectively, were included in Accrued liabilities and $1.5&#160;million and $1.4&#160;million, respectively, were included in Other long-term liabilities.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_AccruedLiabilitiesPolicyTextBlock', window );">Accrued Liabilities [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accrued Liabilities</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">Accrued liabilities consist of the following (in thousands):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>

     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Accrued liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued bonus</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,747</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued vacation payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,328</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,263</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">375</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">420</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Workers compensation reserves</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">237</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">269</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">5,083</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">16,814</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">12,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
     <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativesPolicyTextBlock', window );">Derivatives, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Derivative Instruments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company conducts business in various foreign countries and, from time to time, settles transactions in foreign currencies. The Company has established a program that utilizes foreign currency forward contracts to offset the risk associated with the effects of certain foreign currency exposures, typically arising from sales contracts denominated in Canadian currency. Foreign currency forward contracts are consistent with the Company&#8217;s strategy for financial risk management. The Company utilizes cash flow hedge accounting treatment for qualifying foreign currency forward contracts. Instruments that do <em style="font: inherit;">not</em> qualify for cash flow hedge accounting treatment are remeasured at fair value on each balance sheet date and resulting gains and losses are recognized in earnings.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy', window );">Pension and Other Postretirement Plans, Pensions, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Pension Benefits</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company has <em style="font: inherit;">two</em> defined benefit pension plans that have been frozen since <em style="font: inherit;">2001.</em> The Company funds these plans to cover current plan costs plus amortization of the unfunded plan liabilities. To record these obligations, management uses estimates relating to investment returns, mortality, and discount rates.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency Transactions and Translations Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Foreign Currency Transactions</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The functional currency of the Company, including its Mexican operations, is the United States dollar. Monetary assets and liabilities are remeasured at current exchange rates and non-monetary assets and liabilities are remeasured at historical exchange rates. Revenue and expenses related to monetary assets and liabilities are remeasured at average exchange rates and at historical exchange rates for the revenue and expenses related to non-monetary assets and liabilities.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Transaction gains (losses) from foreign currency forward contracts designated as cash flow hedges are included in Accumulated other comprehensive loss as a separate component of Stockholders&#8217; equity. For the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <em style="font: inherit;">2019,</em> and <em style="font: inherit;">2018,</em> net foreign currency transaction gains (losses) of $(1.1)&#160;million, $0.5&#160;million, and $(0.4)&#160;million, respectively, were recognized in earnings.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Revenue Recognition</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company manufactures water infrastructure steel pipe products, which are generally made to custom specifications for installation contractors serving projects funded by public water agencies, as well as precast and reinforced concrete products. Generally, each of the Company&#8217;s contracts with its customers contains a single performance obligation, as the promise to transfer products is <em style="font: inherit;">not</em> separately identifiable from other promises in the contract and, therefore, is <em style="font: inherit;">not</em> distinct.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
      <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure steel pipe products is recognized over time as the manufacturing process progresses because of the Company&#8217;s right to payment for work performed to date plus a reasonable profit on cancellations for unique products that have <em style="font: inherit;">no</em> alternative use to the Company. Revenue is measured by the costs incurred to date relative to the estimated total direct costs to fulfill each contract (cost-to-cost method). Contract costs include all material, labor, and other direct costs incurred in satisfying the performance obligations. The cost of steel material is recognized as a contract cost when the steel is introduced into the manufacturing process. Changes in job performance, job conditions, and estimated profitability, including those arising from contract change orders, contract penalty provisions, foreign currency exchange rate movements, changes in raw materials costs, and final contract settlements <em style="font: inherit;"> may </em>result in revisions to estimates of revenue, costs, and income, and are recognized in the period in which the revisions are determined. Provisions for losses on uncompleted contracts, included in Accrued liabilities, are estimated by comparing total estimated contract revenue to the total estimated contract costs and a loss is recognized during the period in which it becomes probable and can be reasonably estimated.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Revenue for water infrastructure concrete pipe and precast concrete products is recognized at the time control is transferred to customers, in an amount that reflects the consideration the Company expects to be entitled to in exchange for the products. All variable consideration that <em style="font: inherit;"> may </em>affect the total transaction price, including contractual discounts, returns, and credits, is included in net sales. Estimates for variable consideration are based on historical experience, anticipated performance, and management's judgment. The Company's contracts do <em style="font: inherit;">not</em> contain significant financing.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company does <em style="font: inherit;">not</em> recognize revenue on a contract until the contract has approval and commitment from both parties, the contract rights and payment terms can be identified, the contract has commercial substance, and its collectability is probable.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Share-based Payment Arrangement [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Share-based Compensation</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company recognizes the compensation cost of employee and director services received in exchange for awards of equity instruments based on the grant date estimated fair value of the awards. The Company estimates the fair value of restricted stock units (&#8220;RSUs&#8221;) and performance share awards (&#8220;PSAs&#8221;) using the value of the Company&#8217;s stock on the date of grant. Share-based compensation cost is recognized over the period during which the employee or director is required to provide service in exchange for the award and, as forfeitures occur, the associated compensation cost recognized to date is reversed. For awards with performance-based payout conditions, the Company recognizes compensation cost based on the probability of achieving the performance conditions, with changes in expectations recognized as an adjustment to earnings in the period of change. Any recognized compensation cost is reversed if the conditions are ultimately <em style="font: inherit;">not</em> met.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Income Tax, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Income Taxes</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Income taxes are recorded using an asset and liability approach that requires the recognition of deferred income tax assets and liabilities for the expected future income tax consequences of events that have been recognized in the Company&#8217;s financial statements or income tax returns. Valuation allowances are established when necessary to reduce deferred income tax assets to the amount expected to be realized. The determination of the provision for income taxes requires significant judgment, the use of estimates, and the interpretation and application of complex tax laws. The provision for income taxes primarily reflects a combination of income earned and taxed in the various United States federal, state, local, and to a lesser extent, foreign jurisdictions. Jurisdictional tax law changes, increases or decreases in permanent differences between book and tax items, accruals or adjustments of accruals for unrecognized income tax benefits or valuation allowances, and the change in the mix of earnings from these taxing jurisdictions all affect the overall effective income tax rate.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">The Company records income tax reserves for federal, state, local, and international exposures relating to periods subject to audit. The development of reserves for these exposures requires judgments about tax issues, potential outcomes and timing, and is a subjective estimate. The Company assesses income tax positions and records income tax benefits for all years subject to examination based upon management&#8217;s evaluation of the facts, circumstances, and information available at the reporting dates. For those income tax positions where it is more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, the largest amount of income tax benefit with a greater than <em style="font: inherit;">50%</em> likelihood of being realized upon settlement with a tax authority that has full knowledge of all relevant information has been recorded. For those income tax positions where it is <em style="font: inherit;">not</em> more-likely-than-<em style="font: inherit;">not</em> that an income tax benefit will be sustained, <em style="font: inherit;">no</em> income tax benefit has been recognized in the Consolidated Financial Statements.</p><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock', window );">Comprehensive Income, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Accumulated Other Comprehensive Loss</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Accumulated other comprehensive loss includes unrealized gains and losses on derivative instruments related to the effective portion of cash flow hedges and changes in the funded status of the defined benefit pension plans, both net of the related income tax effect.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Earnings Per Share, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Net Income per Share</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Basic net income per share is computed by dividing the net income by the weighted-average number of shares of common stock outstanding during the period. Diluted net income per share is computed by giving effect to all potential shares of common stock, including stock options, RSUs, and PSAs, to the extent dilutive. Performance-based PSAs are considered dilutive when the related performance conditions have been met assuming the end of the reporting period represents the end of the performance period. In periods with a net loss, all potential shares of common stock are excluded from the computation of diluted net loss per share as the impact would be antidilutive.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Net income per basic and diluted weighted-average common share outstanding was calculated as follows (in thousands, except per share amounts):</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>

     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">19,050</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,902</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,312</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,788</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,741</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effect of potentially dilutive common shares <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">38</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,873</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,779</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income per common share</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.95</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.93</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
     <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p>
    <table border="0" cellpadding="0" cellspacing="0" style="width: 100%; text-indent: 0px;"><tbody><tr style="vertical-align: top;"><td style="width: 18pt;">&#160;</td><td style="width: 18pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">(<em style="font: inherit;">1</em>)</p> </td><td> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">There were no antidilutive shares for the years ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020</em> or <em style="font: inherit;">2019.</em> The weighted-average number of antidilutive shares <em style="font: inherit;">not</em> included in the computation of diluted net income per share was approximately&#160;63,000 for the year ended <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018,</em> including approximately&#160;39,000 of PSAs, at the target level of 100%, that were <em style="font: inherit;">not</em> included because the performance conditions had <em style="font: inherit;">not</em> been met as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2018.</em></p></td></tr>
</tbody></table><span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ConcentrationRiskCreditRisk', window );">Concentration Risk, Credit Risk, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Concentrations of Credit Risk</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">Financial instruments, which potentially subject the Company to concentrations of credit risk, consist principally of trade receivables, foreign currency forward contracts, and deferred compensation plan assets. Trade receivables generally represent a large number of customers, including municipalities, manufacturers, distributors, and contractors, dispersed across a wide geographic base. As of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2020,</em> <span style="-sec-ix-hidden:c70014191"><span style="-sec-ix-hidden:c70014192">one</span></span> customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable, and a different customer had a balance in excess of <em style="font: inherit;">10%</em> of total accounts receivable as of <em style="font: inherit;"> December&#160;</em><em style="font: inherit;">31,</em> <em style="font: inherit;">2019.</em> Foreign currency forward contracts are with a high quality financial institution. The Company&#8217;s deferred compensation plan assets, included in Other assets, are invested in a diversified portfolio of stock and bond mutual funds.</p><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Pronouncements, Policy [Policy Text Block]</a></td>
<td class="text"><p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><b>Recent Accounting and Reporting Developments</b></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Accounting Changes</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the Financial Accounting Standards Board (&#8220;FASB&#8221;) issued Accounting Standards Update (&#8220;ASU&#8221;) <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13,</em> &#8220;Fair Value Measurement (Topic&#160;<em style="font: inherit;">820</em>): Disclosure Framework&#8212;Changes to the Disclosure Requirements for Fair Value Measurement&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13&#8221;</em>), which modifies the disclosure requirements for fair value measurements by removing, modifying, or adding certain disclosures. The Company adopted ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">13</em> on <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2020</em> and the impact was <em style="font: inherit;">not</em> material to the Company&#8217;s financial position, results of operations, or cash flows.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p>
      <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;"><i>Recent Accounting Standards</i></p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: left;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> August 2018, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14,</em> &#8220;Compensation&#8212;Retirement Benefits&#8212;Defined Benefit Plans&#8212;General (Topic&#160;<em style="font: inherit;">715</em>-<em style="font: inherit;">20</em>): Disclosure Framework&#8212;Changes to the Disclosure Requirements for Defined Benefit Plans&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14&#8221;</em>), which modifies the disclosure requirements for employers that sponsor defined benefit pension or other postretirement plans by removing and adding certain disclosures for these plans. The eliminated disclosures include the amounts in accumulated other comprehensive income expected to be recognized in net periodic benefit costs over the next fiscal year and the amount and timing of plan assets expected to be returned to the employer. The new disclosures include an explanation of significant gains and losses related to changes in benefit obligations. ASU&#160;<em style="font: inherit;">2018</em>-<em style="font: inherit;">14</em> is effective for the Company beginning <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted, and will be adopted on a retrospective basis. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> December 2019, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12,</em> &#8220;Income Taxes (Topic&#160;<em style="font: inherit;">740</em>): Simplifying the Accounting for Income Taxes&#8221; (&#8220;ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12&#8221;</em>), which simplifies the accounting for income taxes by removing certain exceptions to the general principles in Accounting Standards Codification (&#8220;ASC&#8221;) Topic&#160;<em style="font: inherit;">740,</em> &#8220;Income Taxes&#8221; (&#8220;Topic&#160;<em style="font: inherit;">740&#8221;</em>). ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> also improves consistent application of and simplifies U.S. GAAP for other areas of Topic&#160;<em style="font: inherit;">740</em> by clarifying and amending existing guidance. ASU&#160;<em style="font: inherit;">2019</em>-<em style="font: inherit;">12</em> is effective for the Company beginning <em style="font: inherit;"> January&#160;</em><em style="font: inherit;">1,</em> <em style="font: inherit;">2021,</em> with early adoption permitted. The Company does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">&#160;</p> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin: 0pt; text-align: justify;">In <em style="font: inherit;"> March 2020, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2020</em>-<em style="font: inherit;">04,</em> &#8220;Reference Rate Reform (Topic&#160;<em style="font: inherit;">848</em>): Facilitation of the Effects of Reference Rate Reform on Financial Reporting,&#8221; which provides optional expedients and exceptions for applying U.S. GAAP to contracts, hedging relationships, and other transactions affected by the discontinuation of the London Interbank Offered Rate (&#8220;LIBOR&#8221;) or by another reference rate expected to be discontinued. The guidance was effective beginning <em style="font: inherit;"> March 12, 2020 </em>and can be applied prospectively through <em style="font: inherit;"> December 31, 2022. </em>In <em style="font: inherit;"> January 2021, </em>the FASB issued Accounting Standards Update <em style="font: inherit;">No.</em>&#160;<em style="font: inherit;">2021</em>-<em style="font: inherit;">01,</em> &#8220;Reference Rate Reform - Scope,&#8221; which clarified the scope and application of the original guidance. The Company will adopt these standards when LIBOR is discontinued and does <em style="font: inherit;">not</em> expect a material impact to its financial position, results of operations, or cash flows from adoption of this guidance.</p><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_AccruedLiabilitiesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents information about accrued liabilities Policy.</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;">nwpx_AccruedLiabilitiesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contract assets and liabilities.</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;">nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_WorkersCompensationInsurancePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 workers compensation insurance and calculation of liability balance.</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;">nwpx_WorkersCompensationInsurancePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)-(d)<br> -URI http://asc.fasb.org/extlink&amp;oid=6909625&amp;loc=d3e227-128457<br><br>Reference 2: 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_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_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_ComprehensiveIncomePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 comprehensive income.</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_ComprehensiveIncomePolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ConcentrationRiskCreditRisk">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 credit risk.</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 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<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 825<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=108315417&amp;loc=d3e61044-112788<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskCreditRisk</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="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://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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=109239629&amp;loc=d3e5614-111684<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DerivativesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 its derivative instruments and hedging 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 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=d3e41620-113959<br><br>Reference 2: 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 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=d3e41638-113959<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 1A<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5579245-113959<br><br>Reference 5: 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 7<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=d3e41675-113959<br><br>Reference 6: 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.(n))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 7: 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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5579240-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_DerivativesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="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> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=6371337&amp;loc=d3e3550-109257<br><br>Reference 2: 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 3: 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 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_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="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> -URI http://asc.fasb.org/topic&amp;trid=2175825<br><br>Reference 2: 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_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.</p></div>
<a href="javascript:void(0);" onclick="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 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_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined.</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 1<br> -URI http://asc.fasb.org/extlink&amp;oid=66006027&amp;loc=d3e16265-109275<br><br>Reference 2: 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_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy</td>
</tr>
<tr>
<td style="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_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="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 25<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e32247-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 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32847-109319<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 954<br> -SubTopic 740<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6491622&amp;loc=d3e9504-115650<br><br>Reference 4: 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 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 19<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32840-109319<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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116657188&amp;loc=SL116659661-227067<br><br>Reference 7: 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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 8: 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 28<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=d3e32280-109318<br><br>Reference 9: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="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> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4556-108314<br><br>Reference 2: 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 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 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6361739&amp;loc=d3e7789-107766<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 330<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=116847112&amp;loc=d3e4492-108314<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 270<br> -SubTopic 10<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=116846552&amp;loc=d3e543-108305<br><br>Reference 6: 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><br>Reference 7: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_PensionAndOtherPostretirementPlansPensionsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 pension plans. This accounting policy may address (1) the types of plans sponsored by the entity (2) groups that participate in (or are covered by) each plan (3) how plan assets, liabilities and expenses are measured, including the use of any actuaries and (4) significant assumptions used by the entity to value plan assets and liabilities and how such assumptions are derived.</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 715<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6412939&amp;loc=d3e15145-114933<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 70<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=49170846&amp;loc=d3e28014-114942<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 80<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=65877416&amp;loc=d3e29149-114947<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 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_PensionAndOtherPostretirementPlansPensionsPolicy</td>
</tr>
<tr>
<td style="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_PriorPeriodReclassificationAdjustmentDescription">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.</p></div>
<a href="javascript:void(0);" onclick="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 205<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6359566&amp;loc=d3e326-107755<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PriorPeriodReclassificationAdjustmentDescription</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="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 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99779-112916<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.13(a))<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 958<br> -SubTopic 360<br> -Section 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=120429125&amp;loc=d3e99893-112916<br><br>Reference 4: 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 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 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_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 revenue. Includes revenue from contract with customer and from other sources.</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 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18823-107790<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 235<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (f)<br> -URI http://asc.fasb.org/extlink&amp;oid=84158767&amp;loc=d3e18823-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_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="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://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 (b),(f)<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 1<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_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="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 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 12<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6191-108592<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6161-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6143-108592<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6061-108592<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6132-108592<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e5967-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497235448">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Summary of Significant Accounting Policies (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Schedule of Accrued Liabilities [Table Text Block]</a></td>
<td class="text">
     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Accrued liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued bonus</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,747</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued vacation payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,328</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,263</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr class="GFJY4-DIN-com-rdg-thunderdome-client-resources-CssResource-html-element-highlighted" style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">375</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">420</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Workers compensation reserves</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">237</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">269</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,977</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">5,083</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">16,814</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">12,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
    <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock', window );">Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]</a></td>
<td class="text">
     <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">19,050</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,902</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">20,312</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Basic weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,788</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,741</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,726</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effect of potentially dilutive common shares <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">38</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Diluted weighted-average common shares outstanding</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,873</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,779</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,733</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income per common share</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Basic</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.95</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Diluted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1.93</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.85</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2.09</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
    <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 components of accrued liabilities.</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_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="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_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692506179320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Business Combinations (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock', window );">Schedule of Business Acquisitions, by Acquisition [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">691</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,089</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,673</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">356</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,096</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">21,684</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">11,165</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">55,754</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,189</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">20,454</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,343</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other long-term liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">939</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">29,320</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">49,419</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Assets</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Cash and cash equivalents</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">912</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Trade and other receivables</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,887</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">12,018</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,937</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Prepaid expenses and other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,777</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">34,827</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">320</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total assets acquired</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">68,678</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Liabilities</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: justify; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accounts payable</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,520</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Accrued liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,599</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Contract liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">3,221</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total liabilities assumed</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10,463</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(20,080</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Total purchase consideration</b></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">38,135</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock', window );">Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Estimated </b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Useful Life</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Fair Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In years) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>(In thousands) </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">11.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8,031</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">10.0</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,093</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Backlog</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">0.9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,041</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: center;">9.9</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">11,165</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock', window );">Business Acquisition, Pro Forma Information [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">289,496</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">323,741</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net income</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,025</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">27,163</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>

    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, 2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 84%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">200,513</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net loss</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(15,102</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionProFormaInformationTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.</p></div>
<a href="javascript:void(0);" onclick="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 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionProFormaInformationTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.</p></div>
<a href="javascript:void(0);" onclick="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 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_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table  does not include leveraged buyouts.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1486-128463<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 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499394424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 5 - Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock', window );">Schedule Of Inventory Current And Non Current [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Raw materials</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">20,631</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">26,772</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Work-in-process</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,416</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,579</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finished goods</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,489</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">683</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Supplies</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,641</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,620</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total inventories</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">29,177</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">30,654</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
      </tr>

     </tbody>
    </table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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. Includes current and non-current inventory balances.</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;">nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498981656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Property and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant and Equipment [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Land and improvements</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,773</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">22,480</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Buildings</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">47,663</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">44,251</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Machinery and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">127,679</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">115,237</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Equipment under finance lease</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,589</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,081</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">200,704</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">184,049</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less accumulated depreciation and amortization</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(96,684</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(86,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">104,020</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">97,805</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Construction in progress</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">6,164</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,826</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Property and equipment, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">110,184</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">99,631</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="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(13))<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502694568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Goodwill and Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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 [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Acquisition of Geneva (Note 3)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Goodwill, December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">22,985</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Gross Carrying</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Accumulated</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Intangible</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amortization</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Assets, Net</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2020</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,409</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,634</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,775</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,225</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(720</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,505</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">329</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(91</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">238</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">12,963</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(2,445</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,518</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Customer relationships</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,378</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(827</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">551</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Trade names and trademarks</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,132</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(452</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">680</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">2,510</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,279</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,231</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,262</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,262</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,171</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,015</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,015</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,793</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total amortization expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">10,518</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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>
<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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497610744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Line of Credit and Long-term Debt (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock', window );">Schedule of Maturities of Long-term Debt [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year ending December 31,</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">7,746</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,176</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,840</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total future principal payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13,762</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Unamortized debt issuance costs</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(173</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Less: Current portion of long-term debt</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(7,701</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 84%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Long-term debt, net of current portion</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,888</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 maturity and sinking fund requirement for long-term debt.</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 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6802200&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock</td>
</tr>
<tr>
<td style="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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692495056936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock', window );">Lessee, Lease, Assets and Liabilities [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases, net, included in Property and equipment <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,288</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,203</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,813</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,683</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">32,101</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">8,886</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,729</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,641</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,115</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7,889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">31,844</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">9,530</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LeaseCostTableTextBlock', window );">Lease, Cost [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>Year Ended December 31, </b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2020</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b><b>2019</b></b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Finance lease cost:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amortization of right-of-use assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">422</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">435</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Interest on lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">57</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Operating lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,647</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,934</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Short-term lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">745</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,442</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Variable lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">199</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total lease cost</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,092</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,009</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_LesseeLiabilityMaturityTableTextBlock', window );">Lessee, Liability, Maturity [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Finance Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Operating Leases</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2021</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">454</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,178</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2022</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2023</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">230</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,561</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2024</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">544</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,416</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">2025</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">301</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,358</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Thereafter</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">27,513</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Total lease payments</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,962</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">40,845</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Amount representing interest</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(233</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(10,730</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Present value of lease liabilities</p> </td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,729</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">30,115</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Current portion of lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(1)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(375</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(2,204</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Long-term lease liabilities <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,354</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">27,911</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock', window );">Lease Terms and Discount Rates for Lease Liabilities [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average remaining lease term (years)</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.67</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">18.21</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">8.31</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Weighted-average discount rate</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5.22</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5.40</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3.36</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4.50</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock', window );">Other Information Related to Operating and Finance Leases [Table Text Block]</a></td>
<td class="text">
    <table cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px; margin-left: 0pt; margin-right: 0pt;"><tbody><tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(79</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(57</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Operating cash flows from operating leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,909</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financing cash flows from finance leases</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(420</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(434</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for finance lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">507</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">819</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Right-of-use assets obtained in exchange for operating lease liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,471</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,335</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 lessee's lease terms and discount rates for lease liabilities.</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;">nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tabular disclosure for assets and liabilities of leases of the lessee.</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;">nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_LesseeLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and finace lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating and finance 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>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;">nwpx_LesseeLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 other information related to operating and finance leases.</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;">nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>nonnum:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeaseCostTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.</p></div>
<a href="javascript:void(0);" onclick="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 4<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_LeaseCostTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505211560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 10 - Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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 );">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">&#160;</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 1</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 2</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Level 3</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>As of December 31, 2020</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,717</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,884</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">833</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>As of December 31, 2019</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"><b>&#160;</b></td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Deferred compensation plan</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">5,150</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,268</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">882</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Financial liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Foreign currency forward contracts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(138</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505200680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Share-based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Share-based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Cost of sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">822</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">383</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">12</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Selling, general, and administrative expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,266</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">1,326</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">269</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">3,088</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">1,709</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">281</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock', window );">Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Number of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>RSUs and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>PSAs </b><span style="font-family:Times New Roman;font-size:8pt;"><b>(1)</b></span></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Weighted-</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Average Grant</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Date Fair</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Value</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2019</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">85,170</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs granted</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">97,834</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">26.61</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Unvested RSUs and PSAs canceled</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,752</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">RSUs and PSAs vested <span style="font-family:Times New Roman;font-size:8pt;">(2)</span></p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(49,680</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">23.56</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unvested RSUs and PSAs as of December 31, 2020</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">129,572</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">25.86</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 change in restricted stock units (RSUs) and performance share awards (PSAs).</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;">nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692498678568">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Revenue (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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 [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net sales by geographic region:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">254,956</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">252,797</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">161,415</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Canada</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">30,951</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">26,520</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">10,734</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">285,907</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Over time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">241,690</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Point in time</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">44,217</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net sales</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">285,907</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">279,317</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">172,149</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692495042984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock', window );">Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">United States</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">24,768</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">32,244</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">16,207</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">866</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">396</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">853</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Total</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25,634</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">32,640</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">17,060</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Current:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">958</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">174</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(117</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,342</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(16</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">99</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">243</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">439</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">395</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total current income tax expense</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2,543</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">597</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">377</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Federal</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,380</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,597</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,954</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">State</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(386</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">561</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(807</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Foreign</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">47</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(17</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">132</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: 9pt;">Total deferred income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,041</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,141</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(3,629</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">6,584</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,738</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3,252</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Income tax expense at federal statutory rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,383</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,854</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,583</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">State expense (benefit), net of federal income tax effect</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">953</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,261</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(218</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Federal and state income tax credits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Change in valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(181</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,564</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,618</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Tax windfall on share-based compensation</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(369</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Bargain purchase gain</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(4,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Nondeductible expenses</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%; text-align: right;">447</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(24</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">427</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Foreign rate differential</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">78</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">36</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">77</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(96</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">175</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">101</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Income tax expense (benefit)</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">6,584</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,738</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(3,252</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Effective income tax rate</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">25.7</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">14.5</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">%</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(19.1</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;">)%</p> </td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31,</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax assets:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Accrued employee benefits</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,525</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,089</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Inventories</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">73</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">147</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Trade receivable, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">958</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">788</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net operating loss carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">3,231</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,391</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Tax credit carryforwards</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">2,699</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5,173</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Other</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">389</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">509</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">10,875</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; border-bottom: 1px none rgb(0, 0, 0); text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">15,097</td><td style="width: 1%; border-bottom: 1px none rgb(0, 0, 0); font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(6,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4,647</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8,971</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Deferred income tax liabilities:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Contract assets, net</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,366</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,703</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Property and equipment</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(12,029</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(10,578</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Intangible assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,737</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(226</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Prepaid expenses</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(889</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(587</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(17,021</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(13,094</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(12,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(4,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="width: 68%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Amounts are presented in the Consolidated Balance Sheets as follows:</p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income tax assets, included in Other assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">107</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">142</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Deferred income taxes</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(12,481</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(4,265</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Net deferred income tax liabilities</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(12,374</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(4,123</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom;"><td style="width: 52%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 1%;">&#160;</td><td style="width: 13%;">&#160;</td><td style="width: 1%;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, beginning of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">4,116</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Increases for positions taken in the current year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">-</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">234</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrecognized income tax benefits, end of year</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td><td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">4,350</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="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 9<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-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_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income before income tax between domestic and foreign jurisdictions.</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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 change in unrecognized tax benefits.</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 740<br> -SubTopic 10<br> -Section 55<br> -Paragraph 217<br> -URI http://asc.fasb.org/extlink&amp;oid=121610041&amp;loc=d3e36027-109320<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 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_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505193832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Accumulated Other Comprehensive Loss (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock', window );">Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="6" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 17%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

      <tr>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment, net of income tax benefit of $679 and $671</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,795</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(1,770</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(71</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(44</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 68%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Total</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,866</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,814</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>
   <span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock', window );">Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Pension Liability Adjustment</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Unrealized</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss&#160;on Cash</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Flow Hedges</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Total</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2019</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,770</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(44</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1,814</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Other comprehensive loss before reclassifications</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(308</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(311</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 27pt; text-indent: -18pt;">Amounts reclassified from Accumulated other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">281</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">259</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Net current period adjustments to Other comprehensive loss</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(25</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(27</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(52</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Balance, December 31, 2020</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,795</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(71</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(1,866</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
      </tr>

     </tbody>
    </table>
   <span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock', window );">Reclassification out of Accumulated Other Comprehensive Income [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;">
     <tbody>
      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Amount reclassified from Accumulated Other</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Comprehensive Loss</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Affected line item in the</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Details about Accumulated Other</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="10" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 33%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Year Ended December 31, </b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>Consolidated Statements</b></p> </td>
      </tr>

      <tr style="vertical-align: bottom;">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: thin solid rgb(0, 0, 0); width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; text-align: center;"><b>Comprehensive Loss Components</b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2020</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2019</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0); width: 1%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>2018</b></b></p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; width: 1%;">&#160;</td>
       <td style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: thin solid rgb(0, 0, 0); width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b>of Operations</b></p> </td>
      </tr>

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

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;">Pension liability adjustment:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Net periodic pension cost:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(16</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(11</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(11</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Cost of sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt;">Non-service cost</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">46</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(15</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">52</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Other income</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(8</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">4</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">8</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(22</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">49</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Unrealized gain (loss) on cash flow hedges:</p> </td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 13%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 1%;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;">&#160;</td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Gain (loss) on cash flow hedges</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(378</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">5</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">13</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Net sales</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 18pt; text-indent: -9pt;">Associated income tax (expense) benefit</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">97</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">2</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(1</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; width: 22%;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><em style="font: inherit;">Income tax expense (benefit)</em></p> </td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">(281</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">7</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);">&#160;</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">12</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

      <tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);">
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 30%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt; text-indent: -9pt;">Total reclassifications for the period</p> </td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(259</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">(15</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">)</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">$</td>
       <td style="width: 13%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">61</td>
       <td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 3px; margin-left: 0pt;">&#160;</td>
       <td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 22%;"><em style="font: inherit;">&#160;</em></td>
      </tr>

     </tbody>
    </table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents schedule of changes in accumulated other comprehensive income loss.</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;">nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 information about items reclassified out of accumulated other comprehensive income (loss).</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_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock</td>
</tr>
<tr>
<td style="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_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 components of accumulated other comprehensive 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6450520&amp;loc=d3e32583-110901<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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669686-108580<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 830<br> -SubTopic 30<br> -Section 45<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=118261656&amp;loc=d3e32211-110900<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock</td>
</tr>
<tr>
<td style="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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499438552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_TableTextBlock', window );"><strong>Notes Tables</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_nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock', window );">Summary of Valuation and Qualifying Accounts [Table Text Block]</a></td>
<td class="text">
    <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: &quot;Times New Roman&quot;, Times, serif; text-indent: 0px;"><tbody><tr style="vertical-align: bottom;"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at Beginning of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Charged to</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Profit and</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Loss</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Deduction</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>from</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Reserves</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td colspan="2" style="text-align: center; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Balance at</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>End of</b></b></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><b>Period</b></b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; padding-bottom: 1px;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2020:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">430</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(464</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt; text-align: right;">767</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">240</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; text-align: right;">(138</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,228</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2019:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">660</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">312</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(171</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">801</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">345</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(3,652</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">6,126</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td><td>&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt;"><b>Year Ended December 31, 2018:</b></p> </td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="text-align: left; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(255, 255, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Allowance for doubtful accounts</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">477</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">449</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(266</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">$</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">660</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
<tr style="vertical-align: bottom; background-color: rgb(204, 238, 255);"><td style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;"> <p style="font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-top: 0pt; margin-bottom: 0pt; margin-left: 9pt;">Valuation allowance for deferred income tax assets</p> </td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">10,413</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">1,785</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">(2,765</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">)</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt;">&#160;</td><td style="width: 9%; text-align: right; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">9,433</td><td style="width: 1%; font-family: &quot;Times New Roman&quot;, Times, serif; font-size: 10pt; margin-left: 0pt;">&#160;</td></tr>
</tbody></table>
   <span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 schedule of allowance and reserve accounts including their beginning and ending balances, as well as a reconciliation by type of activity during the period. Alternatively, disclosure of the required information may be within the footnotes to the financial statements or a supplemental schedule to the financial statements.</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;">nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_TableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505031752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 1 - Organization (Details Textual)<br></strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 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_NumberOfOperatingSegments', window );">Number of Operating Segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">1<span></span>
</td>
</tr>
</table>
<div style="display: none;"><table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8672-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_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table></div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692500238728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Summary of Significant Accounting Policies (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Mar. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from Contract with Customer, Including Assessed Tax</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 285,907<span></span>
</td>
<td class="nump">$ 279,317<span></span>
</td>
<td class="nump">$ 172,149<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent', window );">Workers' Compensation Liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,700<span></span>
</td>
<td class="nump">1,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityCurrent', window );">Workers' Compensation Liability, Current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">237<span></span>
</td>
<td class="nump">269<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossRealized', window );">Foreign Currency Transaction Gain (Loss), Realized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,100)<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="num">$ (400)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">63,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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage', window );">Restricted Stock Units and Performance Share Award Target Level, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.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_nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables', window );">Number of Customers with Receivable Balance in Excess of Ten Percent of Receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (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">39,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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage', window );">Restricted Stock Units and Performance Share Award Target Level, Percentage</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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=nwpx_AccruedLiabilityMember', window );">Accrued Liability [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityCurrent', window );">Workers' Compensation Liability, Current</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 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_BalanceSheetLocationAxis=nwpx_OtherLongtermLiabilitiesMember', window );">Other Long-term Liabilities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityNoncurrent', window );">Workers' Compensation Liability, Noncurrent</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,500<span></span>
</td>
<td class="nump">$ 1,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">15 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember', window );">Land Improvements [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">15 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember', window );">Land Improvements [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">30 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">20 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">40 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life (Year)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">30 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=nwpx_OutOfPeriodAdjustmentMember', window );">Out of Period Adjustment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from Contract with Customer, Including Assessed Tax</a></td>
<td class="num">$ (1,200)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 customers with balances in excess of 10% of total accounts receivable.</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;">nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the target level percentage for restricted stock unit and performance share awards.</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;">nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_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_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionGainLossRealized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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/2009/role/commonPracticeRef<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><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossRealized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="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_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 (b)<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 (a)<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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-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> -Subparagraph (a)<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 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 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 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 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WorkersCompensationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and payables pertaining to claims incurred of a workers compensation nature. 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_WorkersCompensationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and payables pertaining to claims incurred of a workers compensation 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 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 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><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><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(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_WorkersCompensationLiabilityCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WorkersCompensationLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and payables pertaining to claims incurred of a workers compensation nature. Used to reflect the noncurrent portion of the liabilities (due beyond one year; or beyond one 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_WorkersCompensationLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_BalanceSheetLocationAxis=nwpx_AccruedLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AccruedLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=nwpx_OtherLongtermLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_OtherLongtermLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=nwpx_OutOfPeriodAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis=nwpx_OutOfPeriodAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502517544">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_AccruedBonusesCurrent', window );">Accrued bonus</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 3,747<span></span>
</td>
<td class="nump">$ 3,977<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccruedVacationCurrent', window );">Accrued vacation payable</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,328<span></span>
</td>
<td class="nump">2,263<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeLiabilitiesCurrent', window );">Foreign currency forward contracts</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,150<span></span>
</td>
<td class="nump">138<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityCurrent', window );">Finance lease liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">375<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityCurrent', window );">Workers compensation reserves</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">237<span></span>
</td>
<td class="nump">269<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">8,977<span></span>
</td>
<td class="nump">5,083<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_AccruedLiabilitiesCurrent', window );">Total accrued liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">16,814<span></span>
</td>
<td class="nump">12,150<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=nwpx_AccruedLiabilityMember', window );">Accrued Liability [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityCurrent', window );">Finance lease liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">375<span></span>
</td>
<td class="nump">420<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_WorkersCompensationLiabilityCurrent', window );">Workers compensation reserves</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 200<span></span>
</td>
<td class="nump">$ 300<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Current portion of finance lease liabilities are included in Accrued liabilities.</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedBonusesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="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><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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6935-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 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6911-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_AccruedBonusesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_AccruedVacationCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=6409733&amp;loc=d3e19396-108361<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 45<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6911-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_AccruedVacationCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="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><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 6<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e6911-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 45<br> -Paragraph 9<br> -URI http://asc.fasb.org/extlink&amp;oid=121566466&amp;loc=d3e7018-107765<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 45<br> -Paragraph 8<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_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WorkersCompensationLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and payables pertaining to claims incurred of a workers compensation nature. 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_WorkersCompensationLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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=nwpx_AccruedLiabilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AccruedLiabilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502347240">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 19,050<span></span>
</td>
<td class="nump">$ 27,902<span></span>
</td>
<td class="nump">$ 20,312<span></span>
</td>
</tr>
<tr class="ro">
<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 (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,788<span></span>
</td>
<td class="nump">9,741<span></span>
</td>
<td class="nump">9,726<span></span>
</td>
</tr>
<tr class="re">
<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 potentially dilutive common shares (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">85<span></span>
</td>
<td class="nump">38<span></span>
</td>
<td class="nump">7<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 );">Diluted weighted-average common shares outstanding (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">9,873<span></span>
</td>
<td class="nump">9,779<span></span>
</td>
<td class="nump">9,733<span></span>
</td>
</tr>
<tr class="re">
<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>Net income per common share</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Basic (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.95<span></span>
</td>
<td class="nump">$ 2.86<span></span>
</td>
<td class="nump">$ 2.09<span></span>
</td>
</tr>
<tr class="re">
<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 (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 1.93<span></span>
</td>
<td class="nump">$ 2.85<span></span>
</td>
<td class="nump">$ 2.09<span></span>
</td>
</tr>
<tr><td colspan="4"></td></tr>
<tr><td colspan="4"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">There were no antidilutive shares for the years ended December 31, 2020 or 2019. The weighted-average number of antidilutive shares not included in the computation of diluted net income per share was approximately 63,000 for the year ended December 31, 2018, including approximately 39,000 of PSAs, at the target level of 100%, that were not included because the performance conditions had not been met as of December 31, 2018.</td>
</tr></table></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_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 per each share of common stock or unit 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22583-107794<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 11<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22694-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 45<br> -Paragraph 10<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1448-109256<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 50<br> -Paragraph 4<br> -URI http://asc.fasb.org/extlink&amp;oid=109234566&amp;loc=d3e22595-107794<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 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 7: 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 8: 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 9: 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 10: 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 11: 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 12: 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 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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=121326447&amp;loc=d3e1252-109256<br><br>Reference 14: 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 15: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_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_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_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>59
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501362952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Business Combinations (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="1">11 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jul. 27, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </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_NumberOfOperatingSegments', window );">Number of Operating Segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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=nwpx_GenevaPipeCompanyIncMember', window );">Geneva Pipe Company, Inc. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Business Acquisition, Percentage of Voting Interests Acquired</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</a></td>
<td class="nump">$ 49,419<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables', window );">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Trade and Other Receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (100)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,600<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual', window );">Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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=nwpx_AmeronWaterTransmissionGroupLLCMember', window );">Ameron Water Transmission Group, 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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired', window );">Business Acquisition, Percentage of Voting Interests Acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Business Combination, Consideration Transferred, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,135<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationAcquisitionRelatedCosts', window );">Business Combination, Acquisition Related Costs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,600<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_nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment', window );">Business Combination, Bargain Purchase, Increase (Decrease) in Gain Recognized, Measurement Period Adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1,800)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment', window );">Business Acquisition, Increase (Decrease) in Inventories, Measurement Period Adjustment</a></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,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="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred', window );">Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Consideration Transferred</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="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_nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for business acquisition due to measurement period adjustment 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>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;">nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined) due to measurement period adjustment, this element represents the increase (decrease) amount of gain recognized by the 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;">nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to trade and other receivables acquired in connection with a business combination for which the initial accounting was incomplete.</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;">nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 voting equity interests acquired at the acquisition date in the business combination.</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 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired</td>
</tr>
<tr>
<td style="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_BusinessCombinationAcquisitionRelatedCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 25<br> -Paragraph 23<br> -URI http://asc.fasb.org/extlink&amp;oid=116868678&amp;loc=d3e1043-128460<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationAcquisitionRelatedCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="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 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<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 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to items of consideration transferred in connection with a business combination for which the initial accounting was incomplete.</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 4A<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121647850&amp;loc=SL65897772-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_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfOperatingSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.</p></div>
<a href="javascript:void(0);" onclick="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 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8672-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_NumberOfOperatingSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=nwpx_GenevaPipeCompanyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_GenevaPipeCompanyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=nwpx_AmeronWaterTransmissionGroupLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AmeronWaterTransmissionGroupLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692586980280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 31, 2020</div></th>
<th class="th"><div>Jul. 27, 2018</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract', window );"><strong>Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,985<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_BusinessCombinationBargainPurchaseGainRecognizedAmount', window );">Bargain purchase gain</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="nump">$ 0<span></span>
</td>
<td class="num">$ (20,080)<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=nwpx_GenevaPipeCompanyIncMember', window );">Geneva Pipe Company, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract', window );"><strong>Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Trade and other receivables</a></td>
<td class="nump">7,089<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="nump">5,673<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="nump">356<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="nump">9,096<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets', window );">Operating lease right-of-use assets</a></td>
<td class="nump">21,684<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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</a></td>
<td class="nump">11,165<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets', window );">Total assets acquired</a></td>
<td class="nump">55,754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract', window );"><strong>Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">1,395<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities', window );">Accrued liabilities</a></td>
<td class="nump">1,189<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities', window );">Operating lease liabilities</a></td>
<td class="nump">20,454<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income taxes</a></td>
<td class="nump">5,343<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther', window );">Other long-term liabilities</a></td>
<td class="nump">939<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities', window );">Total liabilities assumed</a></td>
<td class="nump">29,320<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">22,985<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase consideration</a></td>
<td class="nump">$ 49,419<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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=nwpx_AmeronWaterTransmissionGroupLLCMember', window );">Ameron Water Transmission Group, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract', window );"><strong>Assets</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 912<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Trade and other receivables</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,887<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,937<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets', window );">Prepaid expenses and other</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,777<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,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>
</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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets', window );">Total assets acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">68,678<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets', window );">Contract assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,018<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">320<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract', window );"><strong>Liabilities</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,520<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities', window );">Accrued liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,599<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,221<span></span>
</td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities', window );">Total liabilities assumed</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,463<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Total purchase consideration</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">38,135<span></span>
</td>
<td class="text">&#160;<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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities', window );">Contract liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">123<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount', window );">Bargain purchase gain</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (20,080)<span></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_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contract assets recognized as of the acquisition date.</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;">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accrued liabilities, assumed at the acquisition date.</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;">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contract liabilities, assumed at the acquisition date.</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;">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 liabilities assumed at the acquisition date.</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;">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right-of-use assets acquired at the acquisition date.</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;">nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined), this element represents the amount of gain recognized by the 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 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6571-128477<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 50<br> -Paragraph 1<br> -Subparagraph (f)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6387-128476<br><br>Reference 4: 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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6396-128476<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 30<br> -Section 30<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6527-128477<br><br>Reference 6: 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 3<br> -URI http://asc.fasb.org/extlink&amp;oid=6911189&amp;loc=d3e6393-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_BusinessCombinationBargainPurchaseGainRecognizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="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 30<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6613-128477<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 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120321790&amp;loc=d3e6927-128479<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 30<br> -Paragraph 7<br> -URI http://asc.fasb.org/extlink&amp;oid=116859721&amp;loc=d3e6578-128477<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assets 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax liability attributable to taxable temporary differences assumed 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 inventory recognized as of 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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=121600890&amp;loc=d3e2207-128464<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assumed 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 property, plant, and equipment recognized as of 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 10<br> -Section 55<br> -Paragraph 37<br> -URI http://asc.fasb.org/extlink&amp;oid=121600890&amp;loc=d3e2207-128464<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 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_BusinessAcquisitionAxis=nwpx_GenevaPipeCompanyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_GenevaPipeCompanyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=nwpx_AmeronWaterTransmissionGroupLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AmeronWaterTransmissionGroupLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501945224">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 3 - Business Combinations - Intangible Assets Acquired (Details) - Geneva Pipe Company, Inc. [Member]<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Jan. 31, 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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible Asset Acquired, Useful Life (Year)</a></td>
<td class="text">9 years 10 months 24 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_FinitelivedIntangibleAssetsAcquired1', window );">Intangible Asset Acquired, Fair Value</a></td>
<td class="nump">$ 11,165<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=nwpx_GenevaPipeCompanyIncMember', window );">Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible Asset Acquired, Useful Life (Year)</a></td>
<td class="text">11 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinitelivedIntangibleAssetsAcquired1', window );">Intangible Asset Acquired, Fair Value</a></td>
<td class="nump">$ 8,031<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=nwpx_GenevaPipeCompanyIncMember', window );">Trade Names [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible Asset Acquired, Useful Life (Year)</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinitelivedIntangibleAssetsAcquired1', window );">Intangible Asset Acquired, Fair Value</a></td>
<td class="nump">$ 2,093<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=nwpx_GenevaPipeCompanyIncMember', window );">Backlog [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible Asset Acquired, Useful Life (Year)</a></td>
<td class="text">10 months 24 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_FinitelivedIntangibleAssetsAcquired1', window );">Intangible Asset Acquired, Fair Value</a></td>
<td class="nump">$ 1,041<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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 1<br> -Subparagraph (a)(3)<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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinitelivedIntangibleAssetsAcquired1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition.</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 1<br> -Subparagraph (a)(1)<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_FinitelivedIntangibleAssetsAcquired1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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=nwpx_GenevaPipeCompanyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_GenevaPipeCompanyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=nwpx_BacklogMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_BacklogMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>62
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501819480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 3 - Business Combinations - Pro Forma Summary (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</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_BusinessAcquisitionAxis=nwpx_GenevaPipeCompanyIncMember', window );">Geneva Pipe Company, 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>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Net sales</a></td>
<td class="nump">$ 289,496<span></span>
</td>
<td class="nump">$ 323,741<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 22,025<span></span>
</td>
<td class="nump">$ 27,163<span></span>
</td>
<td class="text">&#160;<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=nwpx_AmeronWaterTransmissionGroupLLCMember', window );">Ameron Water Transmission Group, 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>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaRevenue', window );">Net sales</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,513<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss', window );">Net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (15,102)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionsProFormaRevenue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.</p></div>
<a href="javascript:void(0);" onclick="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 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=79982066&amp;loc=d3e1392-128463<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionsProFormaRevenue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=nwpx_GenevaPipeCompanyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_GenevaPipeCompanyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=nwpx_AmeronWaterTransmissionGroupLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AmeronWaterTransmissionGroupLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692495341448">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 4 - Discontinued Operations (Details Textual) - Atchison Facility [Member]<br> $ in Millions</strong></div></th>
<th class="th">
<div>Dec. 26, 2017 </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_DisposalGroupIncludingDiscontinuedOperationConsideration', window );">Disposal Group, Including Discontinued Operation, Consideration</a></td>
<td class="nump">$ 37.2<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=nwpx_AtchisonFacilityMember', window );">Placed in Escrow Unitil February 2018 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EscrowDepositsRelatedToPropertySales', window );">Escrow Deposits Related to Property Sales</a></td>
<td class="nump">0.8<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=nwpx_AtchisonFacilityMember', window );">Placed in Escrow Until December 2018 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EscrowDepositsRelatedToPropertySales', window );">Escrow Deposits Related to Property Sales</a></td>
<td class="nump">$ 3.7<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 consideration received or receivable for the disposal of assets and liabilities, including discontinued operation.</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_DisposalGroupIncludingDiscontinuedOperationConsideration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EscrowDepositsRelatedToPropertySales">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Escrow deposits related to property sales in noncash investing and 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 50<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4304-108586<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 50<br> -Paragraph 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4332-108586<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 4<br> -URI http://asc.fasb.org/extlink&amp;oid=121583591&amp;loc=d3e4313-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_EscrowDepositsRelatedToPropertySales</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=nwpx_AtchisonFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis=nwpx_AtchisonFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupClassificationAxis=nwpx_PlacedInEscrowUnitilFebruary2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisposalGroupClassificationAxis=nwpx_PlacedInEscrowUnitilFebruary2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisposalGroupClassificationAxis=nwpx_PlacedInEscrowUntilDecember2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DisposalGroupClassificationAxis=nwpx_PlacedInEscrowUntilDecember2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497300440">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 5 - Inventories - Components of Inventories (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 20,631<span></span>
</td>
<td class="nump">$ 26,772<span></span>
</td>
</tr>
<tr class="ro">
<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">1,416<span></span>
</td>
<td class="nump">1,579<span></span>
</td>
</tr>
<tr class="re">
<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">5,489<span></span>
</td>
<td class="nump">683<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InventorySuppliesNetOfReserves', window );">Supplies</a></td>
<td class="nump">1,641<span></span>
</td>
<td class="nump">1,620<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 );">Total inventories</a></td>
<td class="nump">$ 29,177<span></span>
</td>
<td class="nump">$ 30,654<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_InventorySuppliesNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 products used directly or indirectly in the manufacturing or production process, which may or may not become part of the final product. May also include items used in the storage, presentation or transportation of physical goods.</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)(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_InventorySuppliesNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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>65
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505179976">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 6 - Property and Equipment (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Aug. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_PropertyPlantAndEquipmentNet', window );">Property, Plant and Equipment, Net, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 110,184<span></span>
</td>
<td class="nump">$ 99,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from Sale of Property, Plant, and Equipment, Total</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="nump">39<span></span>
</td>
<td class="nump">$ 141<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=nwpx_MonterreyMexicoFacilityMember', window );">Monterrey, Mexico Facility [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_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from Sale of Property, Plant, and Equipment, Total</a></td>
<td class="nump">$ 2,700<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Gain (Loss) on Disposition of Property Plant Equipment, Total</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_PropertyPlantAndEquipmentByTypeAxis=nwpx_PropertyInHoustonTexasMember', window );">Property in Houston, Texas [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_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from Sale of Property, Plant, and Equipment, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 5,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Gain (Loss) on Disposition of Property Plant Equipment, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_MX', window );">MEXICO</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,300<span></span>
</td>
<td class="nump">$ 19,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="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_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="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> -Subparagraph (c)<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_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_PropertyPlantAndEquipmentByTypeAxis=nwpx_MonterreyMexicoFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=nwpx_MonterreyMexicoFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=nwpx_PropertyInHoustonTexasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=nwpx_PropertyInHoustonTexasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_MX">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_MX</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501918504">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 6 - Property and Equipment - Property, Plant and Equipment (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">$ 200,704<span></span>
</td>
<td class="nump">$ 184,049<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less accumulated depreciation and amortization</a></td>
<td class="num">(96,684)<span></span>
</td>
<td class="num">(86,244)<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_nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress', window );">Property, Plant and Equipment, Net, Excluding Construction In Progress</a></td>
<td class="nump">104,020<span></span>
</td>
<td class="nump">97,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_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">110,184<span></span>
</td>
<td class="nump">99,631<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember', window );">Land Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">22,773<span></span>
</td>
<td class="nump">22,480<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">47,663<span></span>
</td>
<td class="nump">44,251<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember', window );">Machinery and Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">127,679<span></span>
</td>
<td class="nump">115,237<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=nwpx_EquipmentUnderFinanceLeaseMember', window );">Equipment Under Finance Lease [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property and equipment, gross</a></td>
<td class="nump">2,589<span></span>
</td>
<td class="nump">2,081<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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember', window );">Construction in Progress [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property and equipment, net</a></td>
<td class="nump">$ 6,164<span></span>
</td>
<td class="nump">$ 1,826<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 excluding construction in progress 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>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;">nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="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 (c)<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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="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 (b)<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 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_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_MachineryAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=nwpx_EquipmentUnderFinanceLeaseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=nwpx_EquipmentUnderFinanceLeaseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_ConstructionInProgressMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692593594600">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 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_Goodwill', window );">Goodwill</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_Goodwill', window );">Goodwill</a></td>
<td class="nump">22,985<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=nwpx_GenevaPipeCompanyIncMember', window );">Geneva Pipe Company, Inc. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_GoodwillAcquiredDuringPeriod', window );">Acquisition of Geneva (Note 3)</a></td>
<td class="nump">$ 22,985<span></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_GoodwillAcquiredDuringPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.</p></div>
<a href="javascript:void(0);" onclick="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 (b)<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_GoodwillAcquiredDuringPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=nwpx_GenevaPipeCompanyIncMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_GenevaPipeCompanyIncMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499443944">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_FiniteLivedIntangibleAssetsGross', window );">Intangible Assets, Gross</a></td>
<td class="nump">$ 12,963<span></span>
</td>
<td class="nump">$ 2,510<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Intangible Assets, Accumulated amortization</a></td>
<td class="num">(2,445)<span></span>
</td>
<td class="num">(1,279)<span></span>
</td>
</tr>
<tr class="re">
<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">10,518<span></span>
</td>
<td class="nump">1,231<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_CustomerRelationshipsMember', window );">Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible Assets, Gross</a></td>
<td class="nump">9,409<span></span>
</td>
<td class="nump">1,378<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Intangible Assets, Accumulated amortization</a></td>
<td class="num">(1,634)<span></span>
</td>
<td class="num">(827)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">7,775<span></span>
</td>
<td class="nump">551<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_TrademarksAndTradeNamesMember', window );">Trademarks and Trade Names [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible Assets, Gross</a></td>
<td class="nump">3,225<span></span>
</td>
<td class="nump">1,132<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Intangible Assets, Accumulated amortization</a></td>
<td class="num">(720)<span></span>
</td>
<td class="num">(452)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Intangible assets, net</a></td>
<td class="nump">2,505<span></span>
</td>
<td class="nump">$ 680<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 );">Other Intangible Assets [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Intangible Assets, Gross</a></td>
<td class="nump">329<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Intangible Assets, Accumulated amortization</a></td>
<td class="num">(91)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">$ 238<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_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_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_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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksAndTradeNamesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TrademarksAndTradeNamesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692503985112">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2021</a></td>
<td class="nump">$ 1,262<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">1,262<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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">1,171<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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,015<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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,015<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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">4,793<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 );">Total amortization expense</a></td>
<td class="nump">$ 10,518<span></span>
</td>
<td class="nump">$ 1,231<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504758520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 8 - Line of Credit and Long-term Debt (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Oct. 25, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2020 </div>
<div>USD ($)</div>
</th>
</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_nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized', window );">Interest Expense, Debt and Finance Leases, Net of Amounts Capitalized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 900<span></span>
</td>
<td class="nump">$ 500<span></span>
</td>
<td class="nump">$ 600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_InterestCostsCapitalized', window );">Interest Costs Capitalized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [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_LineOfCreditFacilityMaximumBorrowingCapacity', window );">Line of Credit Facility, Maximum Borrowing Capacity</a></td>
<td class="nump">$ 74,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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_MaximumSeniorLeverageRatio', window );">Maximum Senior Leverage Ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3.00<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_MinimumFixedChargeCoverageRatio', window );">Minimum Fixed Charge Coverage Ratio</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.10<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Term Loan [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_DebtInstrumentFaceAmount', window );">Debt Instrument, Face Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,900<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentPeriodicPayment', window );">Long-term Debt, Monthly Repayment of Principal</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebt', window );">Long-term Debt, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty', window );">Debt Instrument, Covenant, Maximum Debt Percentage of Securing Property</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">60.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow', window );">Debt Instrument, Covenant, Repayment Percentage of Excess Cash Flow</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">20.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months', window );">Debt Instrument, Prepayment from Excess Cash Flow Generated, Amount Payable in Next 12 Months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | London Interbank Offered Rate (LIBOR) [Member] | Minimum [Member] | Term Loan [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | London Interbank Offered Rate (LIBOR) [Member] | Maximum [Member] | Term Loan [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Revolving Credit Facility [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_LineOfCredit', window );">Long-term Line of Credit, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity', window );">Line of Credit Facility, Remaining Borrowing Capacity</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 53,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtWeightedAverageInterestRate', window );">Debt, Weighted Average Interest Rate</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1.73%<span></span>
</td>
<td class="nump">3.43%<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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Revolving Credit Facility [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</a></td>
<td class="nump">0.25%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Revolving Credit Facility [Member] | Maximum [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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage', window );">Line of Credit Facility, Unused Capacity, Commitment Fee Percentage</a></td>
<td class="nump">0.375%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Revolving Credit Facility [Member] | London Interbank Offered Rate (LIBOR) [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">1.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember', window );">Wells Fargo Bank, N.A. [Member] | Revolving Credit Facility [Member] | London Interbank Offered Rate (LIBOR) [Member] | Maximum [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_DebtInstrumentBasisSpreadOnVariableRate1', window );">Debt Instrument, Basis Spread on Variable Rate</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 percentage of specified real property securing the loan that the debt must not exceed according to covenant.</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;">nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 percentage of excess cash flow that repayment may be required under debt instrument covenant</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;">nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount required during the next 12 months for prepayment from excess cash flow generated during the 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;">nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of interest expense recorded during the period from debt and finance leases, net of amounts capitalized.</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;">nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_MaximumSeniorLeverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 senior leverage ratio.</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;">nwpx_MaximumSeniorLeverageRatio</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_MinimumFixedChargeCoverageRatio">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 minimum fixed charge coverage ratio.</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;">nwpx_MinimumFixedChargeCoverageRatio</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentBasisSpreadOnVariableRate1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 points added to the reference rate to compute the variable rate on the debt 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;">us-gaap_DebtInstrumentBasisSpreadOnVariableRate1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_DebtInstrumentFaceAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 (par) amount of debt instrument at time of issuance.</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 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=119993939&amp;loc=d3e28551-108399<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 55<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=114775985&amp;loc=d3e28878-108400<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentFaceAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentPeriodicPayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the required periodic payments including both interest and principal payments.</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.22)<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 942<br> -SubTopic 470<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=75038535&amp;loc=d3e64711-112823<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentPeriodicPayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtWeightedAverageInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 interest rate of debt outstanding.</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_DebtWeightedAverageInterestRate</td>
</tr>
<tr>
<td style="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_InterestCostsCapitalized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 interest capitalized 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 835<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=6450988&amp;loc=d3e26243-108391<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestCostsCapitalized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the contingent obligation under letters of credit outstanding as of the reporting date.</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_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCredit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.</p></div>
<a href="javascript:void(0);" onclick="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(22))<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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<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(16))<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_LineOfCredit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.</p></div>
<a href="javascript:void(0);" onclick="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(b),22(b))<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_LineOfCreditFacilityMaximumBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).</p></div>
<a href="javascript:void(0);" onclick="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(b),22(b))<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_LineOfCreditFacilityRemainingBorrowingCapacity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.</p></div>
<a href="javascript:void(0);" onclick="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_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_LongTermDebt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.</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 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=120520924&amp;loc=SL6031897-161870<br><br>Reference 2: 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)(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<br><br>Reference 3: 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(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<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(22))<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_LongTermDebt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=nwpx_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DebtInstrumentAxis=nwpx_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_VariableRateAxis=us-gaap_LondonInterbankOfferedRateLIBORMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CreditFacilityAxis=us-gaap_RevolvingCreditFacilityMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499874296">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_LongTermDebtCurrent', window );">Less: Current portion of long-term debt</a></td>
<td class="num">$ (7,701)<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_LongTermDebtNoncurrent', window );">Long-term debt, net of current portion</a></td>
<td class="nump">5,888<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_DebtInstrumentAxis=nwpx_TermLoanMember', window );">Term Loan [Member] | Wells Fargo Bank, N.A. [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths', window );">2021</a></td>
<td class="nump">7,746<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo', window );">2022</a></td>
<td class="nump">3,176<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree', window );">2023</a></td>
<td class="nump">2,840<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_DebtInstrumentCarryingAmount', window );">Total future principal payments</a></td>
<td class="nump">13,762<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredFinanceCostsNet', window );">Less: Unamortized debt issuance costs</a></td>
<td class="num">(173)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtCurrent', window );">Less: Current portion of long-term debt</a></td>
<td class="num">(7,701)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LongTermDebtNoncurrent', window );">Long-term debt, net of current portion</a></td>
<td class="nump">$ 5,888<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_DebtInstrumentCarryingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt.</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 470<br> -SubTopic 20<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=120520924&amp;loc=SL6031897-161870<br><br>Reference 2: 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(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120400017&amp;loc=d3e572229-122910<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(22))<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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(16))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtInstrumentCarryingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFinanceCostsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.</p></div>
<a href="javascript:void(0);" onclick="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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 835<br> -SubTopic 30<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=119993939&amp;loc=d3e28555-108399<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFinanceCostsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease 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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.19,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_LongTermDebtCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and 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://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 3<br> -Subparagraph (SX 210.12-04.(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6802200&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04.(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6802200&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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 235<br> -SubTopic 10<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.12-04.(a))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24072-122690<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 470<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=6802200&amp;loc=d3e1835-112601<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermDebtNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease 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 210<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02.22)<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_LongTermDebtNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtInstrumentAxis=nwpx_TermLoanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DebtInstrumentAxis=nwpx_TermLoanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LineOfCreditFacilityAxis=nwpx_WellsFargoBankNAMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501356216">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Leases (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Jan. 01, 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_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,813<span></span>
</td>
<td class="nump">$ 7,683<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization', window );">Finance Lease, Right-of-Use Asset, Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,300<span></span>
</td>
<td class="nump">900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeasesRentExpenseNet', window );">Operating Leases, Rent Expense, Net, Total</a></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="ro">
<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, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,115<span></span>
</td>
<td class="nump">$ 7,889<span></span>
</td>
<td class="text">&#160;<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member', window );">Accounting Standards Update 2016-02 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating Lease, Right-of-Use Asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,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_OperatingLeaseLiability', window );">Operating Lease, Liability, Total</a></td>
<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,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_FinanceLeaseRightOfUseAssetAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amortization of right-of-use asset from finance 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 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 842<br> -SubTopic 20<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918638-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_FinanceLeaseRightOfUseAssetAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_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_OperatingLeasesRentExpenseNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.</p></div>
<a href="javascript:void(0);" onclick="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 840<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121573735&amp;loc=d3e41499-112717<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasesRentExpenseNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201602Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692500272824">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_OperatingLeaseRightOfUseAsset', window );">Operating leases, Right-of-use assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 30,813<span></span>
</td>
<td class="nump">$ 7,683<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_LeaseRightOfUseAsset', window );">Total right-of-use assets</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">32,101<span></span>
</td>
<td class="nump">8,886<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Present value of lease liabilities, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,729<span></span>
</td>
<td class="nump">1,641<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Present value of lease liabilities, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">30,115<span></span>
</td>
<td class="nump">7,889<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_nwpx_LeaseLiability', window );">Total lease liabilities</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">31,844<span></span>
</td>
<td class="nump">9,530<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=nwpx_PropertyAndEquipmentMember', window );">Property and Equipment [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseRightOfUseAsset', window );">Finance leases, net, included in Property and equipment</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 1,288<span></span>
</td>
<td class="nump">$ 1,203<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Finance lease right-of-use assets are presented net of accumulated amortization of $1.3 million and $0.9 million as of December 31, 2020 and 2019, respectively.</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_LeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and finance lease.</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;">nwpx_LeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_LeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 lease.</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;">nwpx_LeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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><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 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_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amortization, of right-of-use asset from finance 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_FinanceLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_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_BalanceSheetLocationAxis=nwpx_PropertyAndEquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_PropertyAndEquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692503951592">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Leases - Lease Cost (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 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_FinanceLeaseRightOfUseAssetAmortization', window );">Amortization of right-of-use assets</a></td>
<td class="nump">$ 422<span></span>
</td>
<td class="nump">$ 435<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseInterestExpense', window );">Interest on lease liabilities</a></td>
<td class="nump">79<span></span>
</td>
<td class="nump">57<span></span>
</td>
</tr>
<tr class="re">
<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">3,647<span></span>
</td>
<td class="nump">1,934<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShortTermLeaseCost', window );">Short-term lease cost</a></td>
<td class="nump">745<span></span>
</td>
<td class="nump">1,442<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_VariableLeaseCost', window );">Variable lease cost</a></td>
<td class="nump">199<span></span>
</td>
<td class="nump">141<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_LeaseCost', window );">Total lease cost</a></td>
<td class="nump">$ 5,092<span></span>
</td>
<td class="nump">$ 4,009<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 interest expense on finance 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> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<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 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918638-209977<br><br>Reference 3: 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_FinanceLeaseInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseRightOfUseAssetAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 expense attributable to right-of-use asset from finance 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 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<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 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918638-209977<br><br>Reference 3: 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_FinanceLeaseRightOfUseAssetAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_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_ShortTermLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 short-term lease cost, excluding expense for lease with term of one month or less.</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 (c)<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_ShortTermLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_VariableLeaseCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.</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 (d)<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_VariableLeaseCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>75
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502528296">
<tr>
<th class="tl" colspan="2" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Leases - Future Maturities of Lease Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2021, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 454<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2021, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">3,178<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo', window );">2022, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">433<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2022, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,819<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree', window );">2023, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">230<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2023, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,561<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour', window );">2024, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">544<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2024, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,416<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive', window );">2025, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">301<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">2025, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">2,358<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">27,513<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_FinanceLeaseLiabilityPaymentsDue', window );">Total lease payments, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,962<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total lease payments, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">40,845<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount', window );">Amount representing interest, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(233)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount', window );">Amount representing interest, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(10,730)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiability', window );">Present value of lease liabilities, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,729<span></span>
</td>
<td class="nump">$ 1,641<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Present value of lease liabilities, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">30,115<span></span>
</td>
<td class="nump">7,889<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityCurrent', window );">Current portion of lease liabilities, included in Accrued liabilities, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="num">(375)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Current portion of lease liabilities, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(2,204)<span></span>
</td>
<td class="num">(1,642)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseLiabilityNoncurrent', window );">Long-term lease liabilities, finance leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[2]</sup></td>
<td class="nump">1,354<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Long-term lease liabilities, operating leases</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 27,911<span></span>
</td>
<td class="nump">$ 6,247<span></span>
</td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">Current portion of finance lease liabilities are included in Accrued liabilities.</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">Long-term finance lease liabilities, less current portion are included in Other long-term liabilities.</td>
</tr>
</table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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><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 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_FinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 payments for finance 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_FinanceLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance lease to be paid 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>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_FinanceLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 payments in excess of discounted obligation for lease payments for finance 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_FinanceLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 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_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 payments in excess of discounted obligation for lease payments 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_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499493736">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 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_FinanceLeaseWeightedAverageRemainingLeaseTerm1', window );">Finance leases, weighted-average remaining lease term (Year)</a></td>
<td class="text">3 years 8 months 1 day<span></span>
</td>
<td class="text">3 years 9 months 14 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_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating leases, weighted-average remaining lease term (Year)</a></td>
<td class="text">18 years 2 months 15 days<span></span>
</td>
<td class="text">8 years 3 months 21 days<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent', window );">Finance leases, weighted-average discount rate</a></td>
<td class="nump">5.22%<span></span>
</td>
<td class="nump">5.40%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating leases, weighted-average discount rate</a></td>
<td class="nump">3.36%<span></span>
</td>
<td class="nump">4.50%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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_FinanceLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="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_FinanceLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 finance 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/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><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_FinanceLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>77
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692494993720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_FinanceLeaseInterestPaymentOnLiability', window );">Operating cash flows from finance leases</a></td>
<td class="num">$ (79)<span></span>
</td>
<td class="num">$ (57)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 cash flows from operating leases</a></td>
<td class="num">(3,481)<span></span>
</td>
<td class="num">(1,909)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FinanceLeasePrincipalPayments', window );">Financing cash flows from finance leases</a></td>
<td class="num">(420)<span></span>
</td>
<td class="num">(434)<span></span>
</td>
<td class="num">$ (398)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability', window );">Right-of-use assets obtained in exchange for finance lease liabilities</a></td>
<td class="nump">507<span></span>
</td>
<td class="nump">819<span></span>
</td>
<td class="nump">599<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability', window );">Right-of-use assets obtained in exchange for operating lease liabilities</a></td>
<td class="nump">$ 4,471<span></span>
</td>
<td class="nump">$ 1,335<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_FinanceLeaseInterestPaymentOnLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 interest paid on finance 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> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121609121&amp;loc=SL77918686-209980<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 45<br> -Paragraph 5<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=121603541&amp;loc=SL77918643-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_FinanceLeaseInterestPaymentOnLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinanceLeasePrincipalPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 for principal payment on finance 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 5<br> -Subparagraph (a)<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_FinanceLeasePrincipalPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right-of-use asset obtained in exchange for finance 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 (g)(2)<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_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right-of-use asset obtained in exchange for 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/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)(2)<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_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502251720">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_DeferredCompensationPlanAssets', window );">Deferred compensation plan</a></td>
<td class="nump">$ 4,717<span></span>
</td>
<td class="nump">$ 5,150<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Foreign currency forward contracts</a></td>
<td class="num">(1,150)<span></span>
</td>
<td class="num">(138)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Fair Value, Inputs, Level 1 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Deferred compensation plan</a></td>
<td class="nump">3,884<span></span>
</td>
<td class="nump">4,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_DerivativeLiabilities', window );">Foreign currency forward contracts</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Fair Value, Inputs, Level 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Deferred compensation plan</a></td>
<td class="nump">833<span></span>
</td>
<td class="nump">882<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Foreign currency forward contracts</a></td>
<td class="num">(1,150)<span></span>
</td>
<td class="num">(138)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Fair Value, Inputs, Level 3 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Deferred compensation plan</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_DerivativeLiabilities', window );">Foreign currency forward contracts</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assets held under deferred compensation agreements.</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_DeferredCompensationPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_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_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>79
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692499862648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 11 - Derivative Instruments and Hedging Activities (Details Textual) - Foreign Exchange Forward [Member]<br> $ in Thousands, $ in Millions</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>CAD ($)</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_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax', window );">Unrealized Loss on Foreign Currency Derivatives, before Tax</a></td>
<td class="nump">$ 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months', window );">Foreign Currency Cash Flow Hedge Gain (Loss) to be Reclassified During Next 12 Months</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember', window );">Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DerivativeNotionalAmount', window );">Derivative, Notional Amount</a></td>
<td class="nump">15,300<span></span>
</td>
<td class="nump">$ 6,100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19.5<span></span>
</td>
<td class="nump">$ 7.9<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 [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_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet', window );">Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net, Total</a></td>
<td class="num">$ (600)<span></span>
</td>
<td class="num">$ (100)<span></span>
</td>
<td class="nump">$ 200<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_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 realized and unrealized gain (loss) of derivative instruments not designated or qualifying 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4CC<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL109998890-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 4C<br> -Subparagraph (e)<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_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 payment on derivative.</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 1B<br> -URI http://asc.fasb.org/extlink&amp;oid=121590274&amp;loc=SL5580258-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 1A<br> -Subparagraph (d)<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_DerivativeNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 net amount of unrealized gains or losses on foreign currency cash flow hedges at the reporting date expected to be reclassified to earnings within the next 12 months.</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 30<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=121549185&amp;loc=d3e80748-113994<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unrealized loss recorded in accumulated other comprehensive income pertaining to the decrease in fair value of foreign currency exchange rate derivatives designated as cash flow hedging instruments to the extent that a cash flow hedge is determined to be effective.</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 4C<br> -Subparagraph (b)<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_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeForwardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeForwardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_DesignatedAsHedgingInstrumentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_DesignatedAsHedgingInstrumentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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>80
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502157496">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 12 - Retirement Plans (Details Textual)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </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_DeferredCompensationPlanAssets', window );">Deferred Compensation Plan Assets</a></td>
<td class="nump">$ 4,717,000<span></span>
</td>
<td class="nump">$ 5,150,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_RetirementPlanExpense', window );">Retirement Plan Expense</a></td>
<td class="nump">$ 1,600,000<span></span>
</td>
<td class="nump">$ 1,200,000<span></span>
</td>
<td class="nump">$ 900,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_RetirementPlanTypeAxis=nwpx_DefinedContributionPlanMember', window );">Defined Contribution Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions', window );">Company Matching Percentage on First Eight Percent of Employee Contributions</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions', window );">Company Matching Percentage on First Six Percent of Employee Contributions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">50.00%<span></span>
</td>
<td class="nump">50.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_nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent', window );">Employee Contribution Percentage for Which Company Will Match at Fifty Percent</a></td>
<td class="nump">8.00%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_DefinedContributionPlanNumberOfInvestmentOptions', window );">Defined Contribution Plan Number of Investment Options</a></td>
<td class="nump">23<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_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember', window );">Pension Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_NumberOfNoncontributoryDefinedBenefitPlans', window );">Number of Non-contributory Defined Benefit Plans</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent', window );">Liability, Defined Benefit Plan, Total</a></td>
<td class="nump">$ 1,600,000<span></span>
</td>
<td class="nump">$ 1,600,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_nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax', window );">Accumulated Other Comprehensive Income (Loss), Unrecognized Net Actuarial Losses, Net of Tax</a></td>
<td class="nump">1,800,000<span></span>
</td>
<td class="nump">1,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation', window );">Defined Benefit Plan, Accumulated Benefit Obligation</a></td>
<td class="nump">6,500,000<span></span>
</td>
<td class="nump">6,400,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_DefinedBenefitPlanFairValueOfPlanAssets', window );">Defined Benefit Plan, Plan Assets, Amount, Ending Balance</a></td>
<td class="nump">4,900,000<span></span>
</td>
<td class="nump">4,800,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost', window );">Defined Benefit Plan, Net Periodic Benefit Cost (Credit), Total</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate', window );">Defined Benefit Plan, Assumptions Used Calculating Benefit Obligation, Discount Rate</a></td>
<td class="nump">2.04%<span></span>
</td>
<td class="nump">2.83%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets', window );">Defined Benefit Plan, Assumptions Used Calculating Net Periodic Benefit Cost, Expected Long-term Rate of Return on Plan Assets</a></td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">7.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RetirementPlanTypeAxis=nwpx_NonqualifiedRetirementSavingsPlanMember', window );">Non-qualified Retirement Savings Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions', window );">Company Matching Percentage on First Ten Thousand Dollar Employee Contributions</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent', window );">Officer Contribution for Which Company Will Match at Fifty Percent</a></td>
<td class="nump">$ 10,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent', window );">Select Employee Contribution for Which Company Will Match at Fifty Percent</a></td>
<td class="nump">5,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_RetirementPlanTypeAxis=nwpx_NonqualifiedRetirementSavingsPlanMember', window );">Non-qualified Retirement Savings Plan [Member] | Other Long-term Liabilities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent', window );">Deferred Compensation Liability, Classified, Noncurrent, Total</a></td>
<td class="nump">4,700,000<span></span>
</td>
<td class="nump">$ 5,200,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_RetirementPlanTypeAxis=nwpx_NonqualifiedRetirementSavingsPlanMember', window );">Non-qualified Retirement Savings Plan [Member] | Other Noncurrent Assets [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredCompensationPlanAssets', window );">Deferred Compensation Plan Assets</a></td>
<td class="nump">$ 4,700,000<span></span>
</td>
<td class="nump">$ 5,200,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_nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of unrecognized actuarial loss recognized in accumulated other comprehensive income (loss), net of tax.</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;">nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company matching percentage on first 8% of employee contributions under defined contribution retirement 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;">nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Company matching percentage on first 6% of employee contributions under defined contribution retirement 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;">nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents Company matching percentage on first $10,000 of employee contributions under non-qualified retirement savings 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;">nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_DefinedContributionPlanNumberOfInvestmentOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Defined Contribution Plan Number Of Investment 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;">nwpx_DefinedContributionPlanNumberOfInvestmentOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contribution for which company will match at 50% under defined contribution retirement 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;">nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_NumberOfNoncontributoryDefinedBenefitPlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 noncontributory defined benefit plans.</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;">nwpx_NumberOfNoncontributoryDefinedBenefitPlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents Officer contributions for which Company will match at 50% under non-qualified retirement savings 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;">nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_RetirementPlanExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents retirement plan expense.</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;">nwpx_RetirementPlanExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents select employee contributions for which Company will match at 50% under non-qualified retirement savings 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;">nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_DeferredCompensationLiabilityClassifiedNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the 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_DeferredCompensationLiabilityClassifiedNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredCompensationPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 assets held under deferred compensation agreements.</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_DeferredCompensationPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 actuarial present value of benefits attributed to employee service rendered, excluding assumptions about future compensation level.</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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 rate for present value of future retirement benefits cash flows, used to determine benefit obligation of defined benefit plan.</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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (k)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate</td>
</tr>
<tr>
<td style="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_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 rate of return on plan assets, reflecting average rate of earnings expected on existing plan assets and expected contributions, used to determine net periodic benefit cost of defined benefit plan.</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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (k)(3)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 8<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e2919-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets</td>
</tr>
<tr>
<td style="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_DefinedBenefitPlanFairValueOfPlanAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 segregated and restricted to provide benefit under defined benefit plan. Asset includes, but is not limited to, stock, bond, other investment, earning from investment, and contribution by employer and employee.</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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(01)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(01)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=118257860&amp;loc=d3e4179-114921<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(02)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(ii)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanFairValueOfPlanAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 net periodic benefit cost (credit) for defined benefit plan.</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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e2709-114920<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 17<br> -URI http://asc.fasb.org/extlink&amp;oid=118257860&amp;loc=d3e4179-114921<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 55<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=118257860&amp;loc=d3e4587-114921<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 in statement of financial position, for defined benefit pension and other postretirement plans.</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))<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 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<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)(15))<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 715<br> -SubTopic 20<br> -Section 45<br> -Paragraph 3<br> -URI http://asc.fasb.org/extlink&amp;oid=109237824&amp;loc=d3e1731-114919<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetirementPlanTypeAxis=nwpx_DefinedContributionPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RetirementPlanTypeAxis=nwpx_DefinedContributionPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RetirementPlanTypeAxis=us-gaap_PensionPlansDefinedBenefitMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetirementPlanTypeAxis=nwpx_NonqualifiedRetirementSavingsPlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RetirementPlanTypeAxis=nwpx_NonqualifiedRetirementSavingsPlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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=nwpx_OtherLongtermLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_OtherLongtermLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_OtherNoncurrentAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_OtherNoncurrentAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505343384">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Share-based Compensation (Details Textual)<br> $ / shares in Units, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
</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_nwpx_NumberOfActiveStockIncentivePlans', window );">Number Of Active Stock Incentive Plans</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CommonStockCapitalSharesReservedForFutureIssuance', window );">Common Stock, Capital Shares Reserved for Future Issuance (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">354,022<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_nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed', window );">Common Stock, Capital Shares Reserved for Future Issuance, Percentage Vesting of Outstanding PSAs Assumed</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures, Total (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<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_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">24,000<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price (in dollars per share) | $ / shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 24.15<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value | $</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage', window );">Restricted Stock Units and Performance Share Award Target Level, Percentage</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">100.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_srt_TitleOfIndividualAxis=srt_DirectorMember', window );">Director [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued', window );">Share-based Goods and Nonemployee Services Transaction, Quantity of Securities Issued (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">17,442<span></span>
</td>
<td class="nump">11,924<span></span>
</td>
<td class="nump">11,172<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_nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue', window );">Share-based Compensation Arrangement by Stock-based Payment Award, Grant Date Fair Value (in dollars per share) | $ / shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 25.81<span></span>
</td>
<td class="nump">$ 25.16<span></span>
</td>
<td class="nump">$ 21.48<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 );">Share-based Payment Arrangement, Option [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Month)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">60 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Month)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 26.61<span></span>
</td>
<td class="nump">23.56<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_PerformanceSharesMember', window );">Performance Shares [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage', window );">Restricted Stock Units and Performance Share Award Target Level, Percentage</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_PerformanceAwardsIssuedMultiplier', window );">Performance Awards Issued Multiplier</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">136.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance', window );">Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">91,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 26.61<span></span>
</td>
<td class="nump">$ 23.56<span></span>
</td>
<td class="nump">$ 19.97<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 [Member] | Minimum [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_nwpx_PerformanceAwardsIssuedMultiplier', window );">Performance Awards Issued Multiplier</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares [Member] | Maximum [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_nwpx_PerformanceAwardsIssuedMultiplier', window );">Performance Awards Issued Multiplier</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">200.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_AwardTypeAxis=nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember', window );">Restricted Stock Units and Performance Stock Awards [Member]</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 26.61<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">97,834<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue', window );">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value | $</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,600<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions', window );">Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount | $</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 2,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">1 year 7 months 6 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="4"></td></tr>
<tr><td colspan="4"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">The number of PSAs disclosed in this table are at the target level of 100%.</td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the vesting percentage of PSAs used as an assumption to determine the number of capital shares reserved for future issuance.</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;">nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_NumberOfActiveStockIncentivePlans">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 active stock incentive plans.</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;">nwpx_NumberOfActiveStockIncentivePlans</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_PerformanceAwardsIssuedMultiplier">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 percentage of the performance awards issued multiplier.</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;">nwpx_PerformanceAwardsIssuedMultiplier</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the target level percentage for restricted stock unit and performance share awards.</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;">nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 at a target level of performance, 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>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;">nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the stock-based payment award grant date fair value under a share-based compensation arrangement.</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;">nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_CommonStockCapitalSharesReservedForFutureIssuance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 number of common shares reserved for future issuance.</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_CommonStockCapitalSharesReservedForFutureIssuance</td>
</tr>
<tr>
<td style="padding-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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 to be recognized for 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 (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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.</p></div>
<a href="javascript:void(0);" onclick="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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.</p></div>
<a href="javascript:void(0);" onclick="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)(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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_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_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 or units of entity securities issued in the transaction in which equity securities were issued to pay for goods or nonemployee 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 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_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued</td>
</tr>
<tr>
<td style="padding-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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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)(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_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_TitleOfIndividualAxis=srt_DirectorMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TitleOfIndividualAxis=srt_DirectorMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></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_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_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_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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692495035096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note13 - Share-based Compensation - Share-based Compensation Expense (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 3,088<span></span>
</td>
<td class="nump">$ 1,709<span></span>
</td>
<td class="nump">$ 281<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_CostOfSalesMember', window );">Cost of Sales [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 );">Share-based compensation expense</a></td>
<td class="nump">822<span></span>
</td>
<td class="nump">383<span></span>
</td>
<td class="nump">12<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember', window );">Selling, General and Administrative Expenses [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Share-based compensation expense</a></td>
<td class="nump">$ 2,266<span></span>
</td>
<td class="nump">$ 1,326<span></span>
</td>
<td class="nump">$ 269<span></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_IncomeStatementLocationAxis=us-gaap_CostOfSalesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CostOfSalesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_SellingGeneralAndAdministrativeExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_SellingGeneralAndAdministrativeExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502292776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 13 - Share-based Compensation - RSU and PSA Activity (Details) - Restricted Stock Units and Performance Stock Awards [Member]<br></strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr><th class="th" colspan="2">
<div>Dec. 31, 2020 </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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Unvested RSUs and PSAs (in shares) | shares</a></td>
<td class="nump">85,170<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
</tr>
<tr class="ro">
<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 );">Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.56<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">RSUs and PSAs granted (in shares) | shares</a></td>
<td class="nump">97,834<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
</tr>
<tr class="ro">
<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 );">RSUs and PSAs granted, weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 26.61<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Unvested RSUs and PSAs canceled (in shares) | shares</a></td>
<td class="num">(3,752)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
</tr>
<tr class="ro">
<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 );">Unvested RSUs and PSAs canceled, weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.56<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">RSUs and PSAs vested (2) (in shares) | shares</a></td>
<td class="num">(49,680)<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1],[2]</sup></td>
</tr>
<tr class="ro">
<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 );">RSUs and PSAs vested (2) (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 23.56<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[2]</sup></td>
</tr>
<tr class="re">
<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 );">Unvested RSUs and PSAs (in shares) | shares</a></td>
<td class="nump">129,572<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
</tr>
<tr class="ro">
<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 );">Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 25.86<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
</tr>
<tr><td colspan="3"></td></tr>
<tr><td colspan="3"><table class="outerFootnotes" width="100%">
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top">The number of PSAs disclosed in this table are at the target level of 100%.</td>
</tr>
<tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[2]</td>
<td style="vertical-align: top;" valign="top">For the PSAs vested on March 31, 2020; the actual number of common shares that were issued was determined by multiplying the PSAs by a payout percentage of 136%, based on the performance-based conditions achieved.</td>
</tr>
</table></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_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_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=nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504979432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 14 - Commitments and Contingencies (Details Textual)<br> $ in Millions</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Jan. 31, 2017 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jun. 30, 2014 </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_LettersOfCreditOutstandingAmount', window );">Letters of Credit Outstanding, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1.6<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NoncatastrophicEventAxis=us-gaap_FireMember', window );">Fire [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery', window );">Business Interruption, Incremental Production Costs, Net of Insurance Recovery</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (1.4)<span></span>
</td>
<td class="nump">$ 1.6<span></span>
</td>
<td class="text">&#160;<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_LossContingenciesByNatureOfContingencyAxis=nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember', window );">Portland Harbor Natural Resources Trustee Council [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_LossContingencyAccrualCarryingValueCurrent', window );">Loss Contingency, Accrual, Current</a></td>
<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.4<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_EnvironmentalRemediationSiteAxis=nwpx_PortlandHarborSuperfundSiteMember', window );">Portland Harbor Superfund Site [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_NumberOfPotentiallyResponsibleParties', window );">Number Of Potentially Responsible Parties</a></td>
<td class="nump">150<span></span>
</td>
<td class="text">&#160;<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_nwpx_EstimatedCostOfEPASelectedRemedy', window );">Estimated Cost of EPA Selected Remedy</a></td>
<td class="nump">$ 1,000.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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_EstimatedTimeToCompleteSelectedEPARemedy', window );">Estimated Time to Complete Selected EPA Remedy (Year)</a></td>
<td class="text">13 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_CounterpartyNameAxis=nwpx_LowerWillametteGroupMember', window );">Lower Willamette Group [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_NumberOfPotentiallyResponsibleParties', window );">Number Of Potentially Responsible Parties</a></td>
<td class="nump">14<span></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_nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the amount of incremental production costs due to business interruptions, net of business interruption insurance recovery.</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;">nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_EstimatedCostOfEPASelectedRemedy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 cost of the remedy selected by EPA.</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;">nwpx_EstimatedCostOfEPASelectedRemedy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_EstimatedTimeToCompleteSelectedEPARemedy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 amount of time to complete the selected EPA remedy.</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;">nwpx_EstimatedTimeToCompleteSelectedEPARemedy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_NumberOfPotentiallyResponsibleParties">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 potentially responsible parties for Portland Harbor Superfund site.</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;">nwpx_NumberOfPotentiallyResponsibleParties</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LettersOfCreditOutstandingAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the contingent obligation under letters of credit outstanding as of the reporting date.</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_LettersOfCreditOutstandingAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingencyAccrualCarryingValueCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 contingency liability expected to be resolved 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 450<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -URI http://asc.fasb.org/extlink&amp;oid=121557415&amp;loc=d3e14326-108349<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossContingencyAccrualCarryingValueCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncatastrophicEventAxis=us-gaap_FireMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_NoncatastrophicEventAxis=us-gaap_FireMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossContingenciesByNatureOfContingencyAxis=nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_LossContingenciesByNatureOfContingencyAxis=nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EnvironmentalRemediationSiteAxis=nwpx_PortlandHarborSuperfundSiteMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EnvironmentalRemediationSiteAxis=nwpx_PortlandHarborSuperfundSiteMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CounterpartyNameAxis=nwpx_LowerWillametteGroupMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CounterpartyNameAxis=nwpx_LowerWillametteGroupMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502318776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Revenue 1 (Details Textual)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2019 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Jan. 01, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2017 </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_StockholdersEquity', window );">Stockholders' Equity Attributable to Parent, Ending Balance</a></td>
<td class="nump">$ 269,626<span></span>
</td>
<td class="nump">$ 248,158<span></span>
</td>
<td class="nump">$ 218,590<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,264<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_nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax', window );">Increase (Decrease) in Revenue from Contract with Customers, Including Assessed Tax</a></td>
<td class="nump">2,200<span></span>
</td>
<td class="num">(1,200)<span></span>
</td>
<td class="num">(200)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized', window );">Contract with Customer, Liability, Revenue Recognized</a></td>
<td class="nump">12,300<span></span>
</td>
<td class="nump">$ 3,700<span></span>
</td>
<td class="nump">2,600<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligation', window );">Revenue, Remaining Performance Obligation, Amount</a></td>
<td class="nump">$ 167,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_BusinessAcquisitionAxis=nwpx_AmeronWaterTransmissionGroupLLCMember', window );">Ameron Water Transmission Group, 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_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination', window );">Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 100<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Revenue Benchmark [Member] | Customer Concentration Risk [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_NumberOfMajorCustomers', window );">Number of Major Customers</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">1<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_ConcentrationRiskPercentage1', window );">Concentration Risk, Percentage</a></td>
<td class="nump">16.00%<span></span>
</td>
<td class="nump">23.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember', window );">Retained Earnings [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_StockholdersEquity', window );">Stockholders' Equity Attributable to Parent, Ending Balance</a></td>
<td class="nump">$ 148,381<span></span>
</td>
<td class="nump">$ 129,331<span></span>
</td>
<td class="nump">$ 101,194<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">81,757<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member', window );">Accounting Standards Update 2014-09 [Member] | Cumulative Effect, Period of Adoption, Adjustment [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_StockholdersEquity', window );">Stockholders' Equity Attributable to Parent, Ending Balance</a></td>
<td class="text">&#160;<span></span>
</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">(875)<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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member', window );">Accounting Standards Update 2014-09 [Member] | Cumulative Effect, Period of Adoption, Adjustment [Member] | Retained Earnings [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_StockholdersEquity', window );">Stockholders' Equity Attributable to Parent, Ending Balance</a></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">$ (900)<span></span>
</td>
<td class="num">$ (875)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 period of the amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer.</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;">nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_NumberOfMajorCustomers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">- Definition</a><div><p>Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.</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;">nwpx_NumberOfMajorCustomers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="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 42<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9054-108599<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6351-108592<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13531-108611<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121572278&amp;loc=d3e13537-108611<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -URI http://asc.fasb.org/extlink&amp;oid=99393423&amp;loc=d3e6404-108592<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from 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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130551-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_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 from customer has been received or is due, from 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/exampleRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 10<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130551-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_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.</p></div>
<a href="javascript:void(0);" onclick="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 50<br> -Paragraph 8<br> -Subparagraph (b)<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_ContractWithCustomerLiabilityRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 transaction price allocated to performance obligation that has not been recognized as revenue.</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 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130556-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_RevenueRemainingPerformanceObligation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_BusinessAcquisitionAxis=nwpx_AmeronWaterTransmissionGroupLLCMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_AmeronWaterTransmissionGroupLLCMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_RetainedEarningsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_AdjustmentsForNewAccountingPronouncementsAxis=us-gaap_AccountingStandardsUpdate201409Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CumulativeEffectPeriodOfAdoptionAxis=srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CumulativeEffectPeriodOfAdoptionAxis=srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497385592">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 15 - Revenue 2 (Details Textual)<br></strong></div></th>
<th class="th"><div>Dec. 31, 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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2021-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2021-01-01</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, Remaining Performance Obligation, Percentage</a></td>
<td class="nump">79.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2022-01-01</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_RevenueRemainingPerformanceObligationPercentage', window );">Revenue, Remaining Performance Obligation, Percentage</a></td>
<td class="nump">20.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1', window );">Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="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 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130556-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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationPercentage">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 remaining performance obligation to total remaining performance obligation not recognized as revenue.</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 606<br> -SubTopic 10<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(1)<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130556-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_RevenueRemainingPerformanceObligationPercentage</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2021-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2021-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis=2022-01-01</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692497499512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 285,907<span></span>
</td>
<td class="nump">$ 279,317<span></span>
</td>
<td class="nump">$ 172,149<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">UNITED STATES</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">254,956<span></span>
</td>
<td class="nump">252,797<span></span>
</td>
<td class="nump">161,415<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_CA', window );">CANADA</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 30,951<span></span>
</td>
<td class="nump">$ 26,520<span></span>
</td>
<td class="nump">$ 10,734<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 (b)<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 (a)<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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-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> -Subparagraph (a)<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 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 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 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 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_CA">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_CA</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692495046968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 15 - Revenue - Disaggregation of Revenue (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 285,907<span></span>
</td>
<td class="nump">$ 279,317<span></span>
</td>
<td class="nump">$ 172,149<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredOverTimeMember', window );">Transferred over Time [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">241,690<span></span>
</td>
<td class="nump">279,317<span></span>
</td>
<td class="nump">172,149<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredAtPointInTimeMember', window );">Transferred at Point in Time [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Net sales</a></td>
<td class="nump">$ 44,217<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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 (b)<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 (a)<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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-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> -Subparagraph (a)<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 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 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 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 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredOverTimeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredOverTimeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredAtPointInTimeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TimingOfTransferOfGoodOrServiceAxis=us-gaap_TransferredAtPointInTimeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.4</span><table class="report" border="0" cellspacing="2" id="idm139692586971784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="4">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Jan. 01, 2019</div></th>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</div></th>
<th class="th"><div>Dec. 31, 2017</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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued', window );">Unrecognized Tax Benefits, Income Tax Penalties Accrued</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</a></td>
<td class="text">&#160;<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="nump">35.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_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect', window );">Tax Cuts and Jobs Act, Reclassification from AOCI to Retained Earnings, Tax Effect</a></td>
<td class="nump">$ 200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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 [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_TaxCreditCarryforwardAmount', window );">Tax Credit Carryforward, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member] | Capital Loss Carryforward [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAmount', window );">Tax Credit Carryforward, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_nwpx_TaxCreditCarryforwardExpirationYear', window );">Tax Credit Carryforward, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2024<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_TaxCreditCarryforwardExpirationYear', window );">Tax Credit Carryforward, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2023<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member] | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_TaxCreditCarryforwardExpirationYear', window );">Tax Credit Carryforward, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2034<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State and Local Jurisdiction [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_TaxCreditCarryforwardAmount', window );">Tax Credit Carryforward, Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_TaxCreditCarryforwardExpirationYear', window );">Tax Credit Carryforward, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2021<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating Loss Carryforwards, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State and Local Jurisdiction [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_OperatingLossCarryforwardsExpirationYear', window );">Operating Loss Carryforwards, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2021<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember', window );">State and Local Jurisdiction [Member] | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_OperatingLossCarryforwardsExpirationYear', window );">Operating Loss Carryforwards, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2038<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OperatingLossCarryforwards', window );">Operating Loss Carryforwards, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 4,400<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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 [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_nwpx_OperatingLossCarryforwardsExpirationYear', window );">Operating Loss Carryforwards, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2023<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member] | Maximum [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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_OperatingLossCarryforwardsExpirationYear', window );">Operating Loss Carryforwards, Expiration Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">2030<span></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_nwpx_OperatingLossCarryforwardsExpirationYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 year of the operating loss 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;">nwpx_OperatingLossCarryforwardsExpirationYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_nwpx_TaxCreditCarryforwardExpirationYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 year of the 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;">nwpx_TaxCreditCarryforwardExpirationYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</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_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_OperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</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 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-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_OperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.</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 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-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_TaxCreditCarryforwardAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accumulated other comprehensive income (AOCI) for reclassification to retained earnings of tax effect from remeasurement of deferred tax pursuant to Tax Cuts and Jobs 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/disclosureRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12A<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL116659650-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_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 statutory penalties accrued for a tax position claimed or expected to be claimed by the entity, in its 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/2009/role/commonPracticeRef<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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardAxis=us-gaap_CapitalLossCarryforwardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_TaxCreditCarryforwardAxis=us-gaap_CapitalLossCarryforwardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_StateAndLocalJurisdictionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StateAndLocalJurisdictionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692586967464">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">United States</a></td>
<td class="nump">$ 24,768<span></span>
</td>
<td class="nump">$ 32,244<span></span>
</td>
<td class="nump">$ 16,207<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign</a></td>
<td class="nump">866<span></span>
</td>
<td class="nump">396<span></span>
</td>
<td class="nump">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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments', window );">Income before income taxes</a></td>
<td class="nump">$ 25,634<span></span>
</td>
<td class="nump">$ 32,640<span></span>
</td>
<td class="nump">$ 17,060<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 earnings or loss from continuing operations before income taxes that is attributable to domestic 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 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 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 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</p></div>
<a href="javascript:void(0);" onclick="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 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 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 1<br> -Subparagraph (SAB Topic 6.I.Fact.3)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692501962792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 958<span></span>
</td>
<td class="nump">$ 174<span></span>
</td>
<td class="num">$ (117)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">1,342<span></span>
</td>
<td class="num">(16)<span></span>
</td>
<td class="nump">99<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">243<span></span>
</td>
<td class="nump">439<span></span>
</td>
<td class="nump">395<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_CurrentIncomeTaxExpenseBenefit', window );">Total current income tax expense</a></td>
<td class="nump">2,543<span></span>
</td>
<td class="nump">597<span></span>
</td>
<td class="nump">377<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">4,380<span></span>
</td>
<td class="nump">3,597<span></span>
</td>
<td class="num">(2,954)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="num">(386)<span></span>
</td>
<td class="nump">561<span></span>
</td>
<td class="num">(807)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">47<span></span>
</td>
<td class="num">(17)<span></span>
</td>
<td class="nump">132<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit', window );">Total deferred income tax expense (benefit)</a></td>
<td class="nump">4,041<span></span>
</td>
<td class="nump">4,141<span></span>
</td>
<td class="num">(3,629)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Total income tax expense (benefit)</a></td>
<td class="nump">$ 6,584<span></span>
</td>
<td class="nump">$ 4,738<span></span>
</td>
<td class="num">$ (3,252)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 state, local, federal and foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</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;">nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 federal tax expense (benefit) pertaining to income (loss) 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 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://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))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: 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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 foreign income tax expense (benefit) pertaining to income (loss) 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://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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<br><br>Reference 2: 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))<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_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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) pertaining to taxable income (loss) 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 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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-109319<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 S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.Fact.2)<br> -URI http://asc.fasb.org/extlink&amp;oid=116825942&amp;loc=d3e330036-122817<br><br>Reference 4: 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))<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_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 state and local tax expense (benefit) pertaining to income (loss) 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 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 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 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 3: 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 9<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 federal income tax expense (benefit) pertaining to income (loss) 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 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 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 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 3: 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 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 foreign income tax expense (benefit) pertaining to income (loss) 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 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://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))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e23780-122690<br><br>Reference 3: 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 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 state and local tax expense (benefit) pertaining to income (loss) 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://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 9<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32639-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 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 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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505233336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at federal statutory rate</a></td>
<td class="nump">$ 5,383<span></span>
</td>
<td class="nump">$ 6,854<span></span>
</td>
<td class="nump">$ 3,583<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes', window );">State expense (benefit), net of federal income tax effect</a></td>
<td class="nump">953<span></span>
</td>
<td class="nump">1,261<span></span>
</td>
<td class="num">(218)<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_nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits', window );">Federal and state income tax credits</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(7)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Change in valuation allowance</a></td>
<td class="num">(181)<span></span>
</td>
<td class="num">(3,564)<span></span>
</td>
<td class="num">(2,618)<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_nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation', window );">Tax windfall on share-based compensation</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(369)<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_nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss', window );">Bargain purchase gain</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="num">(4,228)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationNondeductibleExpense', window );">Nondeductible expenses</a></td>
<td class="nump">447<span></span>
</td>
<td class="num">(24)<span></span>
</td>
<td class="nump">427<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential', window );">Foreign rate differential</a></td>
<td class="nump">78<span></span>
</td>
<td class="nump">36<span></span>
</td>
<td class="nump">77<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationOtherAdjustments', window );">Other</a></td>
<td class="num">(96)<span></span>
</td>
<td class="nump">175<span></span>
</td>
<td class="nump">101<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Total income tax expense (benefit)</a></td>
<td class="nump">$ 6,584<span></span>
</td>
<td class="nump">$ 4,738<span></span>
</td>
<td class="num">$ (3,252)<span></span>
</td>
</tr>
<tr class="re">
<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 );">Effective income tax rate</a></td>
<td class="nump">25.70%<span></span>
</td>
<td class="nump">14.50%<span></span>
</td>
<td class="num">(19.10%)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 bargain purchase gain (loss).</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;">nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 the tax windfall on stock based compensation.</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;">nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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 Federal and State tax credits.</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;">nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_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_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="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_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationNondeductibleExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.</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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationNondeductibleExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax 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 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_IncomeTaxReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>93
<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.4</span><table class="report" border="0" cellspacing="2" id="idm139692591777656">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits', window );">Accrued employee benefits</a></td>
<td class="nump">$ 3,525<span></span>
</td>
<td class="nump">$ 3,089<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventories</a></td>
<td class="nump">73<span></span>
</td>
<td class="nump">147<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_nwpx_DeferredTaxAssetTradeReceivableNet', window );">Trade receivable, net</a></td>
<td class="nump">958<span></span>
</td>
<td class="nump">788<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards', window );">Net operating loss carryforwards</a></td>
<td class="nump">3,231<span></span>
</td>
<td class="nump">5,391<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards', window );">Tax credit carryforwards</a></td>
<td class="nump">2,699<span></span>
</td>
<td class="nump">5,173<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOther', window );">Other</a></td>
<td class="nump">389<span></span>
</td>
<td class="nump">509<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_DeferredTaxAssetsGross', window );">Deferred tax assets, gross</a></td>
<td class="nump">10,875<span></span>
</td>
<td class="nump">15,097<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(6,228)<span></span>
</td>
<td class="num">(6,126)<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_DeferredTaxAssetsNet', window );">Deferred tax assets, net</a></td>
<td class="nump">4,647<span></span>
</td>
<td class="nump">8,971<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_nwpx_DeferredTaxLiabilitiesContractAssetsNet', window );">Contract assets, net</a></td>
<td class="num">(1,366)<span></span>
</td>
<td class="num">(1,703)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Property and equipment</a></td>
<td class="num">(12,029)<span></span>
</td>
<td class="num">(10,578)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets', window );">Intangible assets</a></td>
<td class="num">(2,737)<span></span>
</td>
<td class="num">(226)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPrepaidExpenses', window );">Prepaid expenses</a></td>
<td class="num">(889)<span></span>
</td>
<td class="num">(587)<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_DeferredIncomeTaxLiabilities', window );">Total deferred tax liabilities</a></td>
<td class="num">(17,021)<span></span>
</td>
<td class="num">(13,094)<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_DeferredTaxLiabilities', window );">Net deferred income tax liabilities</a></td>
<td class="num">(12,374)<span></span>
</td>
<td class="num">(4,123)<span></span>
</td>
</tr>
<tr class="ro">
<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="num">(12,481)<span></span>
</td>
<td class="num">(4,265)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Net deferred income tax liabilities</a></td>
<td class="num">(12,374)<span></span>
</td>
<td class="num">(4,123)<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_OtherAssetsMember', window );">Other Assets [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income tax assets, included in Other assets</a></td>
<td class="nump">$ 107<span></span>
</td>
<td class="nump">$ 142<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_DeferredTaxAssetTradeReceivableNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 trade receivables, net.</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;">nwpx_DeferredTaxAssetTradeReceivableNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_nwpx_DeferredTaxLiabilitiesContractAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax liabilities attributable to net contract assets</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;">nwpx_DeferredTaxLiabilitiesContractAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>nwpx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_DeferredIncomeTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax liability attributable to taxable temporary differences.</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(26)(b))<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 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-109319<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(15)(b)(2))<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 942<br> -SubTopic 210<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(2))<br> -URI http://asc.fasb.org/extlink&amp;oid=120398452&amp;loc=d3e534808-122878<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(26)(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_DeferredIncomeTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_DeferredTaxAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 and carryforwards.</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 2<br> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-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_DeferredTaxAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 inventory.</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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-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 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-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_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 of deferred tax asset attributable to deductible temporary differences and carryforwards.</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 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-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_DeferredTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 operating loss carryforwards.</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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-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 50<br> -Paragraph 6<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32621-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_DeferredTaxAssetsOperatingLossCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 allowance, of deferred tax asset attributable to deductible temporary differences, 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://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_DeferredTaxAssetsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwards">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.</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 8<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32632-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 3<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32559-109319<br><br>Reference 3: 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></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwards</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 allowance, of deferred tax asset attributable to deductible temporary differences from employee benefits, 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://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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="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 2<br> -Subparagraph (c)<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-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_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 without jurisdictional netting.</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 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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -URI http://asc.fasb.org/extlink&amp;oid=84230637&amp;loc=d3e32537-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_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax liability attributable to taxable temporary differences from intangible assets other than goodwill.</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_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPrepaidExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax consequences attributable to taxable temporary differences derived from prepaid expenses.</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_DeferredTaxLiabilitiesPrepaidExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 tax liability attributable to taxable temporary differences from property, plant, and equipment.</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_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BalanceSheetLocationAxis=us-gaap_OtherAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_OtherAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R80.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504013800">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_UnrecognizedTaxBenefits', window );">Unrecognized income tax benefits, beginning of year</a></td>
<td class="nump">$ 4,350<span></span>
</td>
<td class="nump">$ 4,350<span></span>
</td>
<td class="nump">$ 4,116<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Increases for positions taken in the current year</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">234<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Unrecognized income tax benefits, end of year</a></td>
<td class="nump">$ 4,350<span></span>
</td>
<td class="nump">$ 4,350<span></span>
</td>
<td class="nump">$ 4,350<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unrecognized tax benefits.</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 10B<br> -URI http://asc.fasb.org/extlink&amp;oid=120406818&amp;loc=SL37586934-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 50<br> -Paragraph 15A<br> -Subparagraph (a)<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_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="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 15A<br> -Subparagraph (a)(2)<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_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R81.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692502889752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 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_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax', window );">Pension liability adjustment, net of income tax benefit of $679 and $671</a></td>
<td class="num">$ (1,795)<span></span>
</td>
<td class="num">$ (1,770)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax', window );">Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11</a></td>
<td class="num">(71)<span></span>
</td>
<td class="num">(44)<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_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Total</a></td>
<td class="num">$ (1,866)<span></span>
</td>
<td class="num">$ (1,814)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accumulated other comprehensive (income) loss for defined benefit plan, that has not been recognized in net periodic benefit cost (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/2009/role/commonPracticeRef<br> -Publisher FASB<br> -Name Accounting Standards Codification<br> -Topic 715<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (j)<br> -URI http://asc.fasb.org/extlink&amp;oid=118255775&amp;loc=d3e1928-114920<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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669686-108580<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 10A<br> -Subparagraph (i-k)<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_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</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_AociLossCashFlowHedgeCumulativeGainLossAfterTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 accumulated gain (loss) on derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.</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 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_AociLossCashFlowHedgeCumulativeGainLossAfterTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance 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>96
<FILENAME>R82.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692505312888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_StockholdersEquity', window );">Beginning balance</a></td>
<td class="nump">$ 248,158<span></span>
</td>
<td class="nump">$ 218,590<span></span>
</td>
<td class="nump">$ 200,264<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 loss, net of tax</a></td>
<td class="num">(52)<span></span>
</td>
<td class="num">(43)<span></span>
</td>
<td class="num">(91)<span></span>
</td>
</tr>
<tr class="re">
<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</a></td>
<td class="nump">269,626<span></span>
</td>
<td class="nump">248,158<span></span>
</td>
<td class="nump">218,590<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_StatementEquityComponentsAxis=us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember', window );">Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</a></td>
<td class="num">(1,770)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent', window );">Other comprehensive loss before reclassifications</a></td>
<td class="num">(3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent', window );">Amounts reclassified from Accumulated other comprehensive loss</a></td>
<td class="num">(22)<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive loss, net of tax</a></td>
<td class="num">(25)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Ending balance</a></td>
<td class="num">(1,795)<span></span>
</td>
<td class="num">(1,770)<span></span>
</td>
<td class="text">&#160;<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_StatementEquityComponentsAxis=us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember', window );">Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</a></td>
<td class="num">(44)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent', window );">Other comprehensive loss before reclassifications</a></td>
<td class="num">(308)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent', window );">Amounts reclassified from Accumulated other comprehensive loss</a></td>
<td class="nump">281<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive loss, net of tax</a></td>
<td class="num">(27)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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</a></td>
<td class="num">(71)<span></span>
</td>
<td class="num">(44)<span></span>
</td>
<td class="text">&#160;<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_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember', window );">AOCI Attributable to Parent [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning balance</a></td>
<td class="num">(1,814)<span></span>
</td>
<td class="num">(1,536)<span></span>
</td>
<td class="num">(1,445)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent', window );">Other comprehensive loss before reclassifications</a></td>
<td class="num">(311)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent', window );">Amounts reclassified from Accumulated other comprehensive loss</a></td>
<td class="nump">259<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive loss, net of tax</a></td>
<td class="num">(52)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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</a></td>
<td class="num">$ (1,866)<span></span>
</td>
<td class="num">$ (1,814)<span></span>
</td>
<td class="num">$ (1,536)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, before reclassification adjustments, of other comprehensive income (loss), attributable to parent.</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 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121640130&amp;loc=d3e1436-108581<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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669686-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_OciBeforeReclassificationsNetOfTaxAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 adjustments of other comprehensive income (loss) attributable to parent.</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 14A<br> -URI http://asc.fasb.org/extlink&amp;oid=121641772&amp;loc=SL7669686-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 55<br> -Paragraph 15<br> -URI http://asc.fasb.org/extlink&amp;oid=121640130&amp;loc=d3e1436-108581<br></p></div>
<a href="javascript:void(0);" onclick="top.Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_StatementEquityComponentsAxis=us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R83.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504629000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="nump">$ 235,388<span></span>
</td>
<td class="nump">$ 232,133<span></span>
</td>
<td class="nump">$ 160,053<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (loss)</a></td>
<td class="nump">953<span></span>
</td>
<td class="nump">4,383<span></span>
</td>
<td class="nump">267<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Tax (expense) benefit</a></td>
<td class="num">(6,584)<span></span>
</td>
<td class="num">(4,738)<span></span>
</td>
<td class="nump">3,252<span></span>
</td>
</tr>
<tr class="ro">
<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,050<span></span>
</td>
<td class="nump">27,902<span></span>
</td>
<td class="nump">20,312<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from Contract with Customer, Including Assessed Tax</a></td>
<td class="nump">285,907<span></span>
</td>
<td class="nump">279,317<span></span>
</td>
<td class="nump">172,149<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis=us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember', window );">Reclassification out of Accumulated Other Comprehensive Income [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="num">(259)<span></span>
</td>
<td class="num">(15)<span></span>
</td>
<td class="nump">61<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_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis=us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember', window );">Reclassification out of Accumulated Other Comprehensive Income [Member] | Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of sales</a></td>
<td class="num">(16)<span></span>
</td>
<td class="num">(11)<span></span>
</td>
<td class="num">(11)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (loss)</a></td>
<td class="nump">46<span></span>
</td>
<td class="num">(15)<span></span>
</td>
<td class="nump">52<span></span>
</td>
</tr>
<tr class="re">
<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 );">Tax (expense) benefit</a></td>
<td class="num">(8)<span></span>
</td>
<td class="nump">4<span></span>
</td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="ro">
<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">22<span></span>
</td>
<td class="num">(22)<span></span>
</td>
<td class="nump">49<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_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis=us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember', window );">Reclassification out of Accumulated Other Comprehensive Income [Member] | Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Tax (expense) benefit</a></td>
<td class="nump">97<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="num">(1)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="num">(281)<span></span>
</td>
<td class="nump">7<span></span>
</td>
<td class="nump">12<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax', window );">Revenue from Contract with Customer, Including Assessed Tax</a></td>
<td class="num">$ (378)<span></span>
</td>
<td class="nump">$ 5<span></span>
</td>
<td class="nump">$ 13<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<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_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_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_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_RevenueFromContractWithCustomerIncludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.</p></div>
<a href="javascript:void(0);" onclick="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 41<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e9038-108599<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 5<br> -URI http://asc.fasb.org/extlink&amp;oid=121604090&amp;loc=SL49130545-203045<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 (b)<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 (a)<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 30<br> -Subparagraph (a)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8906-108599<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> -Subparagraph (b)<br> -URI http://asc.fasb.org/extlink&amp;oid=120311839&amp;loc=d3e8736-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> -Subparagraph (a)<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 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 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 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 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_RevenueFromContractWithCustomerIncludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis=us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis=us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_StatementEquityComponentsAxis=us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>R84.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692494966792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Note 18 - Restructuring (Details Textual) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 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_RestructuringCharges', window );">Restructuring Charges, Total</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,364<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_EmployeeSeveranceMember', window );">Employee Severance [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring Charges, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">600<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=nwpx_DemobilizationActivitiesMember', window );">Demobilization Activities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring Charges, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 800<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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_RestructuringCostAndReserveAxis=us-gaap_EmployeeSeveranceMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_EmployeeSeveranceMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=nwpx_DemobilizationActivitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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=nwpx_DemobilizationActivitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R85.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.4</span><table class="report" border="0" cellspacing="2" id="idm139692504627208">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2020</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
<th class="th"><div>Dec. 31, 2018</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_ValuationAllowancesAndReservesTypeAxis=us-gaap_AllowanceForCreditLossMember', window );">SEC Schedule, 12-09, Allowance, Credit Loss [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at Beginning of Period</a></td>
<td class="nump">$ 801<span></span>
</td>
<td class="nump">$ 660<span></span>
</td>
<td class="nump">$ 477<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged to Profit and Loss</a></td>
<td class="nump">430<span></span>
</td>
<td class="nump">312<span></span>
</td>
<td class="nump">449<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deduction from Reserves</a></td>
<td class="num">(464)<span></span>
</td>
<td class="num">(171)<span></span>
</td>
<td class="num">(266)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at End of Period</a></td>
<td class="nump">767<span></span>
</td>
<td class="nump">801<span></span>
</td>
<td class="nump">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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember', window );">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at Beginning of Period</a></td>
<td class="nump">6,126<span></span>
</td>
<td class="nump">9,433<span></span>
</td>
<td class="nump">10,413<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged to Profit and Loss</a></td>
<td class="nump">240<span></span>
</td>
<td class="nump">345<span></span>
</td>
<td class="nump">1,785<span></span>
</td>
</tr>
<tr class="re">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deduction from Reserves</a></td>
<td class="num">(138)<span></span>
</td>
<td class="num">(3,652)<span></span>
</td>
<td class="num">(2,765)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl " style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="top.Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance at End of Period</a></td>
<td class="nump">$ 6,228<span></span>
</td>
<td class="nump">$ 6,126<span></span>
</td>
<td class="nump">$ 9,433<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 valuation and qualifying accounts and reserves.</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 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-122690<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 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-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_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 valuation and qualifying accounts and reserves from charge to cost and expense.</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 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-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_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.Show.hideAR();">X</a></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 valuation and qualifying accounts and reserves.</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 4<br> -Subparagraph (SX 210.12-09(Column D))<br> -URI http://asc.fasb.org/extlink&amp;oid=120395691&amp;loc=d3e24092-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_ValuationAllowancesAndReservesDeductions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_AllowanceForCreditLossMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ValuationAllowancesAndReservesTypeAxis=us-gaap_AllowanceForCreditLossMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="top.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_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>100
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M,KD!?E\+H0\GR0#Y_OSP7U!+ P04    " #3@612V'[<_?8$  "3$P  &
M 'AL+W=O<FMS:&5E=',O<VAE970R+GAM;)6877.C-A2&_XK&LQ?9F6Q XCOC
M>&9M^I&+;3-QM[U60+:9!>0B$6?_?27 X$A"3F]B(.\YZ-&1]$HL3[3YP0Z$
M</!6E35[6!PX/]X[#LL.I,+LCAY)+?ZSHTV%N;AM]@X[-@3G75!5.LAU0Z?"
M1;U8+;MG3\UJ25M>%C5Y:@!KJPHW/]>DI*>'!5R<'SP7^P.7#YS5\HCW9$OX
M]^-3(^Z<,4M>5*1F!:U!0W8/BZ_P/D5(!G2*OPMR8A?70**\4/I#WCSF#PM7
MMHB4).,R!18_KV1#RE)F$NWX=TBZ&-\I R^OS]E_[> %S MF9$/+?XJ<'QX6
M\0+D9(?;DC_3T^]D  IDOHR6K/L+3H/678"L99Q60[!H0574_2]^&SKB(@"&
M,P%H"$!J@#\3X T!WD<#_"' [WJF1^GZ(<4<KY8-/8%&JD4V>=%U9A<M\(M:
MUGW+&_'?0L3QU8;6C)9%CCG)P9:+'U%4S@#=@3^/I,&R. Q\ =^W*;CY]!FP
M VX( T4-_CK0EN$Z9[?@T[O[I<-%PV1Z)QL:L>X;@68: 1'X1FM^8."7.B?Y
M^P2.(!JQT!EKC:P94Y+= 0_> N0BU]"@S8?#86((3S\>'EMHO+%(7I?/G\GW
MAYC_#)?$V+5]:-"%REG^ND)QD+C1TGF]!#;(HL2#BBS593!"T$]&V3L ?P3P
MK0 ;RK@<4K,0?7AXV3HO\.)8@3#)$/0\!4*7P=!U \\,$8P0@17BMX8R!HX-
MW17<Q!!H;PW< "8*@J[R(QC["H&N@LA-0C- . *$5H"M6%V+>G\+]J064[N\
M!6*Z IR+9:5@7,[U5P+(F[ 41DR H=[[?A(H3=_H*H&7! J@016&X4R%HA$P
MLE=(^!P09B*'F1QN.YP59<$+\YB+M":X"LI51:HKOJ D=,T8\8@16S&>B:A&
MF_&V$=6R%22^2G!5D>H*Z(6^&2 9 1(KP. <HO%%G=&*@)M23)W/)H1$'U-!
M$"JC96-0Q6&L3*U45XEB1-#, MW)(5TKS1HW>SFPCFV3'<06 \@[H\FY5^MQ
M79(:)&(3%\^,*7AA]-!>%'X@S5 08^NA]MXD\-3VZR+?B]7UUZ!"830#@"8
M9 5XK#D1>P]N8T!Z\]0%V*31:J!KY@$F%X=V&Q\!+%-Z2/%N$">JP6U,*C]"
M*H5!%<0S:RR<O!S:S?RQG],O1)PZR'F&<_QF7F6AP;.#T%-=PR#S4*@7QF#M
MD3NWX,+)VJ'=VQ]'BG-QP,V+<$EA]<9E"^H&'0:JBV\,*C_R8I5)5WWQ4(!F
MF":WAW:[E[M&RU0)]9U>X@;:@J7+Q+[1U8::0>9Z<(YA,G38.ZAWE0$(3P'B
MHI+^+@\AEGTUG)P6VJUVC5F1@1NQNN>T+''#NM=T^<UU[]-%E[UVIVYN-@85
MNHM#M<],*G=FIPTG[X5V\TV+LI6'N?\!E9B@M#5'5PDH=5]G5,U!H<F#D6L=
M!]O^V-DR 2:M^,P#,EQF;=D?4^]M!\?))Y'=)Z<AT9]UC5V&#&89:<<5H\J'
M2I<956AFKX\FNT1VN[P<!S82W>J2.%*+;U)%D;H!,ZH\U7"<BZ\5%6GVW5<?
M)N9V6_/^A#\^';\L?>V^IRC/U_ ^[;\/36GZSU7?Q):MJ!DHR4ZD=.\BL3 U
M_1>@_H;38_=-Y(5R3JON\D!P3AHI$/_?4<K/-_(%XW>XU7]02P,$%     @
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
MLGQKE!4M<GM=KX2&R]\64WB?$6D,H'\MA-Y7S N@?O'-_@)02P,$%     @
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
M2L!_7U+*GD^JSR?:3Y?._@502P,$%     @ TX%D4A70F<)1"0  DRH  !@
M  !X;"]W;W)K<VAE971S+W-H965T-RYX;6R=6MMRVS@2_166*@])5101%]Y2
MMJML:V=W'B;KBC,[SS0)6=Q(A :D?)FO'P"D"0EH0/*\V"1U .)T-[H/0%P\
M<_&S6S/61R_;3=M=SM9]O_NZ6'35FFW+[@O?L5;^LN)B6_;R5CPNNIU@9:T;
M;3<+',?I8ELV[>SJ0C^[$U<7?-]OFI;=B:C;;[>E>+UA&_Y\.4.SMP??F\=U
MKQXLKBYVY2.[9_WONSLA[Q93+W6S96W7\#82;'4YNT9?E[10#33B?PU[[@ZN
M(T7E@?.?ZN;7^G(6JQ&Q#:MZU44I_SVQ6[;9J)[D./X<.YU-[U0-#Z_?>O]%
MDY=D'LJ.W?+-'TW=KR]G^2RJV:K<;_KO_/D_;"24J/XJONGTW^AYQ,:SJ-IW
M/=^.C>4(MDT[_"]?1D,<-$"IIP$>&V"[ ?4T(&,#<FX#.C:@VC(#%6V'9=F7
M5Q>"/T="H65OZD(;4[>6])M6^?V^%_+71K;KKVYYV_%-4Y<]JZ/[7OZ33NV[
MB*^BV[);1[_(P.BB>?3[_3+Z^.%3]"%JVNC'FN^[LJV[BT4OQZ!Z6E3C^VZ&
M]V'/^Q".?N-MO^ZB?[4UJX\[6,C!3PSP&X,;'.QQR:HO$4&?(QSC&!C0[=G-
M40$T7Y[?/ ^P(9,_B.Z/^/RAC+[21E\)OHWD!!=EW[2/PPQI^H9U7P/OH=-[
MJ'X/];SGFTPI35OQ+8-\.+1-=%N5.9ZN4!$GTKI/AX9U43@K8GR,6@*HF""#
M.AI^,@T_"9KINOZ_G!M#J/9<)J"*MU6S85$[\5+/U5VE++H3_*F1\18]O$8?
M]YV\:-I/[S9N.HTN#1KWIA2/,N5&N[VHUC(I1>H.LO/037I@&]O&)Q%+%S&7
M23^/80-G$X4L2&')9!FIFG)(SFT=K9JV;"L6;9@B5&ZYZ)N_],\0L<P9%,*$
M4HL<B"J01=!%Y5F:P?3RB5X>I/=OY1[)K"MES,A<MRIE]&C_0VSRDVXZB5BZ
MB#DN4H^7BHE&$:1Q?> &1:-I^[)];!XDJ;+K6 ^R*9R18!QG%B$71+ ]LUU,
MDG@(H=C4H_A$X*V8$'J"#K.X?(&=,O9SQ*.(<XL'@*(H+2PF &I.<NH),G10
M7-%98=:TW5[HZ2,34<68IW(B=Q0(4=LU("RE]K0!8#[G8,,'!_G<KTO!YDIG
MU9'TCA2?W1![[$5=@[5D[/(HE.+<\9.+0EGL^,E%X1QY6)F2BTB0U7_[-1.?
M5;$ QT_<D>5Y88_?1>5):@_?!:5IXAF^J>0H7,I_B+)F.D=S14050]8\E3()
MP%%&73Y)2FP^+FI.*$EL1BX,8^R+,U/=41*D)%5I+V1-'K.8WS>):W5D1\TM
M@)KG)'.""X"A+#_H[IB-40,H+ =^;9^D4.'"4UV06\$SE#@.<5%Y2AT.@!I
M),6YAX.1 RBL!^X$VY5-_3;1NX-X\U<:Y)9NG"!;!4 HFE";&8 JD"_2C Y
M82%P755\KU3DKGQ54P:D =1NDL3(Y@' :)HY4\:%I4GAT</(* %T0@I4E=C+
MM&S\LFG*AX"H06[YGA>VK@% .$D=WP!=89(1F!,V6@"'M<"W]\MWB"EVJWN2
MQKE=5P$8Q7EN)W$ -D<YC3VAB(U8P.A=2[]&IHWN':L3;,HX#I?QZ^K/?=,U
M;ZKQ8=])0#>D6?5 V[Q4(&$OT4>+NG5X3O,,VU4=P-FZ&.J*9!C[@L=4=1RN
MZG?CXDOO9<@ DL'2O^KIP22QG5H[@M3<&CU'-$9V/H9P>9+;LQV"R=+C49;8
M%'T<+OI'[,Z2_1BJZ-BNE0#*\5@(<DS'%'P<+OAWHRP>(O^\51EVZ[6=ODY#
ME@ D3Y!'E&%3\W&XYL.$WA&&I[<&  BQ]0" 0=0CF+$1 _B4&#@D-RUN0![
M&C\E3NH%BCO"Q";CHGR!9^H_#M?_J<2,507,N@//2HK2IMVKG\;*PULX, $A
MD")*G!0"X:A+&Y(?F!Q4X6/N1C+@L&0 RZN??]UTHPDD\H0%7$'@1.])R!*
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
M1;A"R@>68ENS!#1=2^^00T+4L1'A4'"ILP W2I.1VF0E'JRE5!2<(NVYD@M
M#I0IVP?MG6V;D51PQC[B9G]R,U4K*X]DGM1>FTYCUD5(:)>^-!!HN_2E@4T[
M_%%JP_]1J^Q C^=JCI2M^WQ?WE1JE7[=<'3P4G<>;%UYB/DB7>R0@FML;&^_
MS>KFV^&DO3*?S-L/#]0*V@G*CPML'>Y^_- CWU[F[22Z.EV@<Q>1X#0LT?+8
MBP'>%PXQ["9RP.:+:OHO4$L#!!0    ( -.!9%+2=ZWRS10  'TZ   8
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
MDG/T!9F4('XO55H";RE7X-2<%_Z#8I!><!#^:^Z/!@K&LBMJ#DRWOOWZAD#
M0F]I'\3?;FHRW/&D9]%UV.9+JDV8M_"Q%1EA&#3L_@RP+.WV@<!OCFINXRL^
M+E_8+>87W&4:H<VH6K0Q#P5[1OQIC2]T60A;,, 1)I;TJ[HZ7O_M!0<^.EUS
M)#[[C'%08D_*RW]_LY S[:'^,5(2Z/TX14]@P2@5-%?3" "[Z/K<F=L3S+]0
MP&T>R6]K>:BF<?.0+91<?K?V&#B4J FAJQ74]5YQ<'?E/NM:38H'T$$<UKUK
MZ_S[JBZ+I%P!R-LZ4V?6, @1"@WKW6"5^;#H^F)!KI_[JOM6Y:GJ%HC,*&!O
MD"[3(19&PN;X6Y^M-[I1 <#;4%K&V?N>UAJ@#KU"!GXQH9<ASF-E\LAEZ9&*
MYW!M )7,O>N5U=_8B2XZ/ASE1DU'+CSWI$E?Z!]DJ\A#I"],D#31B,NYG5#E
MAM+$2#5AY$!K)A0E.UL6'MU@+WOVE,.2&AZZ2IV UP9X4X9OH" LUT3LTG<P
M0M67]$Q;%])\33B2!(\1@':0%!CU5$&$&K)O$O1U'K]W+UW/74Y2.!*Z/&M.
MK.NL.L0) \ ,RGV)RQ%' ",<VIDB]Q::LK-<KXM],-J''#.2Y1S,\8*WOJ^B
M_^B2@[!GYT9T57,N\I?LZ.4+CD#X01%V)+_%)I\*,J-"WT/;0<4^JC&)')Z?
MTRW71V!*C5J4*O>YWU;A?W +H%$>0LS)$U(T)###J^NJ]WO!X_6*>D6:#:S$
M;-Q>GK8/R5IJR46MG#+=)3VU@_E)9$<X0II#^*J66C=E_:"4[_VBET^4LJWF
M[(M1F75>;W 6"0_JZD?LN-CN0P@?%% (D/F[#TD2-NRJ<";""PYQ1Y^N['9B
M4&>BV(+%+-RI+T&$7OKGNZ\VMM%9<1(+YHYD.$*8<7MWU<_H4\H!D;M@"CO[
M@X;^-Q]X-!#1+NOW&?5*^=YVZ'OWO:PH)C1X@Y1X#5_TA_V:^IYT* AOK_KQ
MF1T0YR*362CMXD)-,<UDH5(1D.\NX0G5P2NX:@19$>IZ[WOE8,^:\-TS@_Q,
MW;5)57[8'T^T=G?W@6;1@>=)6P2E+74?Y);*.]V*B4J*2<Y\O==*'8AE?U!\
MZUS'B4O[TE1<8?-YK)<6L@%>D(PZ/<!!N3M>H8W@74MH3T MT8N TI</OC;#
M/?(OZ)&'#]PP'Y:/G<*"8BYNI2#I 8584TM6)?9KOI?M$%B/&=##4MXY]JWY
M0V@PJ)1C(&RZ8Y^=S(17H\T4U^G@*NY[A#^XD!3XI?>7+?;>)F&L$;>B6-"9
MBOS'O\)=A>U^5IHIHJHH*H5("61)HC4HU*C'SN^O1?D($4\=;X;XNC;\5ZA<
M#^X8L7ER-K,8D*YL+Q&;W-,+G31G'3Z )_=$PFT:+KI36&R34KHKO(?=H86E
M^L&'*>7&.]E'Z$G;33X&RO02!3<AW03??6)B:&X48:@"#/.DA4*,*S,GQXR
M<HY//+NF/4H@%D/,;?G@ ;E_(W=HT;"&D8S$/Y./I!/^6,&H.8D#0E&L(X4*
M']!U5_ (?!=/4RIOG&;.5;N!(N+R;C@)(4*U!I=1*Y$E+]4[ W>)*CQR6&>@
MQE%YYB%SK4U_C291S5Z.WE-[_JWU#Y9W\#BA$VQY6=CZ@"G<$TLN?2&@X"M7
ML$!.DMH*WT/<O:5GAP;EJTE<)S@L-U8_IQ:N+.B*'[XB#&=<>S_)ERJ_,84D
M:\JRVV M]ZJLF] (&&SL3IRNZBVEO^\FYX@F+#)K.[[A5$-]X"[H"0[D*]"X
M1KGT5#.V=^2 .\&N1@=:%3U?B)+@K#D7V6%<E#C#))*!R^22LZL?,CJ'I&"[
MIYNN>I4)%4W)N=F@!1($X>[(LW[=2UVZ?GIZ"9 O=[E:@$LS<;]L[]E< T]S
MO%J3%1Z7^CM%I&-RW=7QGA["("5V=<?K04J,6O73\F:?:%LV*>=5?5K/$<C5
MO''_J:]/IM@SJ1[T%3L,8@9XA[B3X*.$W6."UE6+"L:6LNWZ*XXD6>Y'.AF+
MQM>GFE("6\SI4.$V2-H=3%CLZ!F)CRJ&=K(.!Q;Y9G3."^C^D0.KVJ&AKG49
M<Z$)Z@6HDTSP_<X-_QI %<>A0%-U7#] 8Q[+61\6UD2[Q[!="VUR]__Z6Y?A
MKN5;7?+63Z%MJ1F$*>^-:C:"WB;W$Y"6WCQ%C4=L@/).Q0'1LRA9#A+$":*,
MY#L2MSM($^/[PB@IC"KB>(<!4BGM1XP)4%FKUK4U G=45?2B'EY/W>D=]D/3
M?0)_;ZKH)%WGCSD-9<^>Q#Y_.\"7J.*U(2>6Z$"*1(IL:[T,?3$!C402VJ;N
M2KZ=B,M@/8<_#J4_9W5UB:-;>$?O HV\1ZIC&ZZSQ4YRW_$>=FHR;KHV;4JI
MN[;T_*7X-VZFO]M?(>MO@:=4_R0FE]GX;$QOIN?9Y7B*-^-L-IEZVWOT '9P
M@LOL_.("?T\G^#M](=XYC4=_.(BK?.@5;KC4L\ES<7$F9A?B/%K7W]K]XGR&
M?<\O\7<VVQ;.@//N<'3ZT>49CCRZ>,$OX\NX-S^<N8=GX>$S,4% -,K=;B(_
MGRI$H&OQE)+E([?U+[(8278>C7 7*E<HUCESQ.]&<'NQ%9_1LN@OZR=!(-0N
M4S'$^)O$=_>CAZW5<[<Z&B)9VO7&!7]>"6:\?6<P>T*5V?FPF&$,<D,$D'B)
M9/=&8E^ [>]_$5J69N#:!]6LX$S77<77.5W6EJ7%8 PL-,HH\PXEVG"3*-9L
M^7'CDE69&ZYJXP=BJ BCT=80EQG!'&S?9GP[=$)8 ?]W?J8QXMN:PQ\E@8;/
MT9N^[<&A34==^VA-CO.J6]+!O2)]K$?.ZB>S3%PXM<,'7]D)'\4_B0U(_8)V
MNNKL-BUW,#>N91S>YS03YY,S$;<Z'6YUNK75)/-I?<\-5\OW*UZB_RK.3\?A
M0UB.ON+OD^7Q.!UZ<"OWFQDG$+</D3LFRB].+_Q#[,I?;\MP.HK+NC7] A,Q
M=AOL^WW:2?*30-+()?_PT;I>L/MU8/PV_K;RROVDL!_N?IA)Y"V!_DJUH*GC
MT?G9D:M9AP]MW? /# E]D?KSVY4B"S(80,\7-;D!_P$;Q%^<OOY?4$L#!!0
M   ( -.!9%*G?:JAY0<  *P6   9    >&PO=V]R:W-H965T<R]S:&5E=#$P
M+GAM;-U8V6[;2!;]E8+&:*0!6N*B->T8L)VEW4ALHYUT,!C,0XDL234AJ]A5
M1<ONKY]SBXN62$YF@$$/^L4F:[G[N?>(9VMMOMB5$(X]%KFRKWHKY\J7@X%-
M5Z+@MJ]+H;"ST*;@#J]F.;"E$3SSEXI\$(?A>%!PJ7KG9W[MSIR?Z<KE4HD[
MPVQ5%-P\78I<KU_UHEZ[\*M<KAPM#,[/2KX4]\)]*N\,W@:=E$P60EFI%3-B
M\:IW$;V\'-)Y?^ W*=9VZYF1)W.MO]#+=?:J%Y)!(A>I(PD<_Q[$E<AS$@0S
M?F]D]CJ5=''[N97^UOL.7^;<BBN=?Y:96[WJ37LL$PM>Y>Y7O?Y9-/Z,2%ZJ
M<^O_LG5]=CCJL;2R3A?-95A02%7_YX]-'+8N3,,C%^+F0NSMKA5Y*U]SQ\_/
MC%XS0Z<AC1Z\J_XVC).*DG+O#'8E[KGS&^T$2]@INZPLMJQE5[J82\4I9O9L
MX*"#3@[21MYE+2\^(B^*V0>MW,JR-RH3V:Z  8SK+(Q;"R_C9R6^%FF?)5'
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
M@YOW  &QZRC&)XJ+^"+B+>8]Z$<^Q&$<7L#K=R'W&[S^A9 -6 5?N60RYTS
MHV467;SF G[2X2<-?O()_BF3/JP%D_9]0N&6FUPH4VN$?Y[P8&$A5/[Z[T>)
MONC&=>O85"S'J4?M:%"_H3=+>[!^^'V]?'CZ&^;WM[#\X_ENO5K>/XW?%QA/
M?'R0U/FYHBXSUH#:@BT0MDI0MW*Y@VLN2:)J0U;FRQBH&%B^H.X*0I]H!+\Y
M4/?C9:756YM+N((X]H?#?KM(LA 6-1<;PC60#/TT[4.2^/$@@A7+"XI/_\0.
MHIC4AB.(HH$?]X=G>:SI=FG8-B5$$$B=";$_R$;T#;.(:(7^,$P@RA(_3(@A
M&D,S(*_+6E"Q-]2ZE#:J?CL<'/U2:<O_:P77H]1/LP2^P'66^G'B5E%(4!3Q
M:.AGX0!N*&E6U^UTH311X#OMO*1^E))C/XO3BUF_HK!"GPC2:C3RTWX$<R$<
MS@<FP W036FH-S5!>);<[9K+:WS 0XZ5I=IIN(K#7I_&A1"GX*ZB42_K)%1F
M1^ 33_N"Y\5/_E9XX+D"UER1CR^!#W?RQQ%),A_F]8YFV''S46\%9Z.K1+UK
M!K2A"UE+VTZQ3MJ] ?-V]/U0;Q^0%=,[+HDU;LDT[ T''NAV*+<;JZIF$+XH
M2V.U61;TCJ%V"G2^5309CAOGH'L99_\#4$L#!!0    ( -.!9%(\UVDYZ ,
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
M:/1'S0+T?:YHDFH>^(#VS\3X;U!+ P04    " #3@612H5C8H00&   K#0
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
MWM&;#OGZ:EZ_1+=*U^&YB[A<IT=4,:I.-N#[PB&&S8L<L/E]=/H?4$L#!!0
M   ( -.!9%(5W$P\'04  -0+   9    >&PO=V]R:W-H965T<R]S:&5E=#(R
M+GAM;)U6;6_;-A#^*P<O'1) M27Y+4Z3 $F:8AO6-DC:#L.P#[1TEHA0I$92
M=;-?OSM*EKW,,8K!@$R1O)?G[KG3G:^-?70EHH=OE=+N8E!Z7Y^-1BXKL1)N
M:&K4=+(RMA*>7FTQ<K5%D0>A2HW2.)Z-*B'UX/(\[-W9RW/3>"4UWEEP354)
M^W2-RJPO!LE@LW$OB]+SQNCRO!8%/J#_7-]9>AOU6G)9H7;2:+"XNAA<)6?7
M$[X?+GR1N'8[:V D2V,>^>7G_&(0LT.H,/.L0=#?5[Q!I5@1N?%7IW/0FV3!
MW?5&^[N G; LA<,;HWZ3N2\O!J<#R'$E&N7OS?HG[/!,65]FE M/6+=W)XL!
M9(WSINJ$R8-*ZO9??.OBL"-P&K\@D'8":?"[-12\?"N\N#RW9@V6;Y,V7@2H
M09J<DYJ3\N MG4J2\Y<?C$=(IO :[O$KZ@;/1Y[4\N$HZU1<MRK2%U0D*;PW
MVI<.;G6.^;\5C,B?WJETX]1U>E#C6\R&,$XB2.,T/J!OW(,<!WWC R => /O
MI!8ZDT+!@Q<>B5S>'= _Z?5/@O[)"_J[T,'*F@IN*!:6R$:)]"7<A!2BA3\^
MX3</U\IDCW_NB_%A"Y2A(=S??KG]\/GV##Z52&:J6N@G$+FI/>9P]7 #GTPM
M,YC%LX@?/_YPFJ;)&_A%Z(;J#4(\DU/0QO/Q?_;WW?M ;<$)1=%;/D&!IK"B
M+LF&Q8)J*@H%D0-5ER>7")L(I696X3WKL$>P1HL@'*R,HB[@X%BRA&F<T+D[
M.8/?4=B6/4"YQVI) =ODGYU9M!X=]N8,/FO)H0BY=7 $Z702+::SL$JC^6).
MJV261!,*YXW0(A<PCNE& NDLFI*I)([FXPG%T1-%2.IT&BUBEDKGBVB<!/EY
M&B63!7S46X#46S+3:+9-;9),O ("!NGX50A%T+;UG:]P>)X(M ,\@#HBAUX]
M/TM.AURKDMNB PIDMB$<.B^K -VBHZY$>NE8:'IFU+ =PG&.[>J$3VQ'6_+Q
M*!VFU%Z4"ED].DZ&Z<GVG<$<'<<[>]\'(NI0L-,1O)5.% 7EJB?)IFZ8SRTU
MI"[ BZ5"R+>W Z#V)N7=8F8*2G30\96L$6C"0$GP(* V4GL&Q[L1<\[O%,L2
ME21-%#9/:^>I?U/%> <E%3Q?U,(WEN4JSF?$6LBE-@*-SM!Z^L[Y)W9>^JU;
M?)P)5\(JT%LPVU<K^O!05,AE\EB;BHBZHC09^[_Y_[&'2XR<)-%L$>_EYMUN
M$& RB5(Z?DV_+0D/D[OO85?.(>%D?+]*L92*XD[2G+!<$D*+%!0*I5\CMDV
MQP7.8@B),H[72Z&H[9)<UQBZ='"#2N9OW-:<V)KK]]2.W=H2P:U43QW#7=MR
M66>;J9>\>FZQ1AL&&K['UI9,:UVX-M-Y8P,1.W[OIW>@]"'&AP:ZVZH[YOY-
MNC;$\26Q=BVXCC/5Y&W%M@[O@=_%D9G.=Y;4]G0(-L45158R+&GR4-!).ASO
M5/1X.']6S^EPUE?S,\#?6=#7(GM4INC_+=)<Z/B;VKK7>4O>6.3YD$WL!MXL
ME6R;@:/BRLF.DX4FNYN.UO;*-74 2W%96>&\;3*N4' >44$M:R12F+SI+]/W
MH.S#*]UNT/MN,21>LUM[\:7M.HWV#0:CG4F+&G\1YDD'H?NW0U>_VX^L5^VD
MMKW>SKOOA:7T.5"X(M%X.)\.P+8S9/OB31WFMJ7Q])4)RY+&;K1\@<Y7AL::
M[H4-](/\Y3]02P,$%     @ TX%D4@:]7(J5!P  =1(  !D   !X;"]W;W)K
M<VAE971S+W-H965T,C,N>&ULK5C[;^.X$?Y7!FZN\ ):6V_)N21 DMU%4V!W
M@TON413]@9'HF%V9\I%4G-Q?WV\HV7$NCGNX%D%DBIH9SN.;AW2R;LTWNY#2
MT>.RT?9TM'!N=3R=VFHAE\).VI74>#)OS5(XW)K[J5T9*6K/M&RF<1CFTZ50
M>G1VXO>NS=E)V[E&:7EMR';+I3!/%[)IUZ>C:+39^$'=+QQO3,].5N)>WDCW
MX^K:X&ZZE5*KI=16M9J,G)^.SJ/CBY3I/<%/2J[MSIK8DKNV_<8W5_7I*&2%
M9",KQQ($?A[DI6P:%@0U?AUDCK9',N/N>B/]D[<=MMP)*R_;YF=5N\7IJ!Q1
M+>>B:]P/[?IO<K G8WE5VUA_I75/FV0CJCKKVN7 # V62O>_XG'PPPY#&;[!
M$ \,L=>[/\AK^4$X<79BVC49IH8T7GA3/3>44YJ#<N,,GBKPN;,OK9,4Y?2>
MKG35+B7=BD=I3Z8.LIEB6@UR+GHY\1MRHI@^M]HM+'W4M:Q?"IA"J:UF\4:S
MB_B@Q ^RFE 2!12'<7A 7K*U-/'RD@.66G(M?5):Z$J)AFZ<<!((<_: _'0K
M/_7RTS?D/_N//BA;-:WMC*1_WLI'1Q=-6WW[USZO'I3)&7EL5Z*2IR.DG)7F
M08[.$*T)77VY_/KY(]V>__+QYIAN%Y)^U,K)NK?)DM U(64!2DW0:]5J-I/:
M^2;.=Y(?D^KO'$>=!#:$!5^#7+4T5IK<HNTLA-EWQ_0/*4P?7D)PY/).FFV
M<(EF?"E_I\@1Q6E0Y"4621S$:8I%E =Q6-"G0;\RSRF9Y51F"=VV#H$!4Q;D
M2=HSY6G(3$40YJ$W=:]!,('D(XJ5E32^DUK.E7OW?S+ILC,&QQW3)UE+XQ6<
M9:57BG4<1U%![WJ+*0J2-,96CIW9;&MDG":4)C,8F@U&5KW0G1!L]8^##.39
MK*"D**#97(*T?CX^#9(RI"1@BG$<S+)T>_PX*?GD+(]H7(:LUD:#%+1>SRB)
M!Q7J0?(^'9Y]F 9A&N$:X3I.@CR>04@OX"#?$>5!5K*#@("$W07N.(N9&U&L
MU1RG2UTQ&-U:2@Z-I$L$5^BGO_ZEC*/B>TL25+YT[QYFV%3&.'/,!Z]8.*!S
MK7EZ1:DLJ]>@1\'673C46  !8MEVC*8_AXX] !1NCU9>E2/*$+S$.Z?,/,+A
MI&2(WBLG!J31F8'RC;A=CWO/ (D)0!=SP&-H\VZ+$O:/]6)WF"J$6\'4]_@;
M,QHN%T+?,PD]B*83?:]D]PB.S#@J(Q A<%G.( /:<G\(U[FUTO4<M 06NT"J
MO><&6?O\A!F]+']0DC-F+H2Y1PQHU9EJ 4KR=YX@#>*8Q7YIV=T= G[7;-UA
M*67PQJQ &C\7#N_0#8P<5_2BI"0GY,Q7 ,/0>,:Y$!4916%TN% < .O'-Q$8
M9Y."OJ,HG63X&4>S"9SUG4?WZS@AB.@VJ]9@^-D!/WK2 G"Y9_E&02>T* OK
MU%Q5 N4!#.Q'7^KVY:NP5KJ^X#=*W*E&.06A@+QO&9IK\1T/7Z^*WQN8_O#F
M(<=T7E6FPR/8T;1/DC/7^\_V.(XS_QN6,SC[ 6>WAG4I % $\-:(&C;B5/4@
M$-X>VUQ(B[*D+XSS%8#KE+XGM$]+E3#F"6UJ+4QM(3=.(LZ>6>31UR/Y=T2
M)XIN%D0XL\=  F6R< 8$!"4#(0M"5,V?]F$]'T"(110S<E+TGH+*8%9$>]VR
MX_!C%"[M#*;,P5F]=6.T@YQ%85&$"1;7AJUT3SYB\M=.K7@"P?,X"'UE'4/3
MK& ]KK1#;OI,&**,]"N2PN>A5_#:R)50]7.BC,O2R\A*3\5-,_8)'"$L,TX@
M]O,^'.V"Y\BKDQ1,?\3)&<6L^OE0)KFI/H-+;>JVMFVC:L%[%Z+Q+KWAP=3N
ME-SC _ *>*OIZEYF'[W!;G1:]#)<T5KW"&##H7#:URK4DCS[WRR]TOYD:QF+
M;%W/\<3)B7>?1OTF#R1C@ E=XY7&![:"7Q0*LJ7U0GJ; %IDYY+'KT9]D\T3
M5P!-NG4O_E^E9T#GO@KL>8!K@DN2^F4Z>8,F8IJR7[Y%X^6$$U_$AEY,<]5P
M2=FI?M)U1MM-[%^.?)O^\^\.]:Q6_O6+8TL"]BX]I>[\P=S7AEJ^2PP'<G*
M8\FG]SWL!<&$?E9N@::X!O0KN1JX=N8'=K%NN:+E$SK?O'3Z(LP3I&]Z6_T[
MC:K4HN;^]C*<V^KV!ZKI'YZ.#Q\58'6OM&;@0=DGELH]*<G"%[\1!DPT-("1
MTQY>1*.PJN\43GS#,#78MADSO23NM3'FZO^NA40 #IW/O[L0J5MI/6PQR35H
M9;O/MF>QPQW:GG4^P*A9HO%I:&3CZP;2JT/=,(X'@QV]GFW#_J$^/GDK1WP(
M H8$*[E!.V]Q6";T53_SQ+'?+?KKOF3D9W@#>;T]P00SH0B!QC_/L''T_4L!
M@W!D8<277AMF_+O0'4,TVBC&DCQF0F;I3>";C=A]+ZW3G4\!2VGN_0</=%(N
MW/U7@>WN]IO*>?\IX9F\_R#S&=.:@L<;.0=K."FR$084_Y&COW'MRG]8N&N=
M:Y=^N9!H\88)\'S>XI5[N.$#ME^:SOX#4$L#!!0    ( -.!9%([R?6'Q00
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
MJZI3>-4/T_$,0*PH\*Z\,WCN4$;MVBCXNU$%2!?.N"H7($L^Y]/+D?O^5VG
M<MRG5V-1U>W.Q5=TQY!H7P;1OAS<ZN^66/Y@6XU[MD\]O(.KHZ]]91N9J3<G
M9!/F7IWLD"1YPM>H4"_H]JC3#/;HS!"M8*/;M3\B*'(P<KBC*8#"2E7*R**@
M(Z2:EFT9B?3//U"^+D'QF13/_N>_+F>SR8^_C^_&XN?KZUMZ/_WQ.6CZST[#
M;L _5>#1R>S@%)3R*V!+V!0>T2]=OF).V[5LA5PNP92(+.RV-DC8'TV@#!:N
MW-DN-)NV=@OEVF9%;3M#DD/\@ TBW4/W!&1!Z0V@C(.2 QPYF^:+ #8A2H$W
MB47S321LD%H-D).>#0PC+.%C% NH=ZW!W:.,"UH3,+/*%)& +^\!0^L.KH/E
M#6ZO*QN&.!:A05PJ-#"6H] 7R(.T=247A1)=1>"$<*1-UI6P35C:CL4_T6'
M\JL:>5V@2QGUP?E>%AWKK2APZSVN1\X9\+9KBT0+,DMDH;-@]19AO5P@\B*W
M(URGWB!Y ?8I\KI;M,NN"!".2X)P41"X?F,@ #4M>Q2TKX;,ZEFDFRLX(J"\
MX/V88WCW?"16=9UO '!P5=CS2J,TV#9& 9D0JB *8@"U:Q#E*6HH1\91M0Y:
M@61= DS);\@86U:K5Y$PJR88(4838PBJV@X4"L<"XD0\&@]B )TN CI=##M_
M+]N;1+9/1*A!"OL1:C_9=_L431;IE JB1%U'*Y09:-*2Q$6IP')R%Q<$"-$Y
MJ!G\FHP*X[L,GL2=4PVG(4)7,+QPPR(H^2]W>PF'HZ.U6K&4VI#5*#QHV_PA
M4(P<>]I&[*!C%RXVL+-Z@4%%#&,<ND0N'%\,!@PG8O&0A$0I)P1G$#PI!_X4
MUBR5(::9CZ8#CPB6BHB>8?R6*97S5Y5JMU8[6H@V^FZ@XT_08::_GU3*\-_;
M^A;3$J#,K##""]?A.SR-0;&G :IBO AT;0R&$=5I.3CY&,4QBMN>,X,K=07'
M'JP5G&@'L.8B2]AR5\')R776HA%CQ"IDGCN8Z<#CM)!P-,0" I%S.3V )KCP
M_^I*/08?EP$^+H?3$FG71(U>? "9@.05H>_3,&20S'X,.4A;A&\R?*&2;\@<
M;$N6X2^R:_"PIQ"-EB/PG*MU\7!::+@G)P?"4:_EV =T!:Z93(_.)$:3 U*\
M"E*\>BSZ5L B(M21XAI<;[^X(A&VC^N>^WSOW>>USX ^&YD3VL6[3!+$.(#K
MA9#O9$$+WF$5P=)Y!C'M>.9^#(,5'X:[X- ML>0/!QSYVF*<PZX/775(L\!)
MN S%111<Z5"08?J T7F"7#3R@54):],"!*]P7C'X:[I6]?"4-&P[@*:$+0J.
MR*,/1EDQ;,60=GKQHPV!:G_OB(=B Q8%KJ#>8.[GWM5+ +]$^%YV0#?K)<P(
M6+E2"(* &9!<8RK%*+%T::,3B&,EB5%A_XPB8-T /"BQ7&%65AOT2U'<[ X!
M5J.XO72]4$?(NU[NRC0LK2Q(BER@!R]@(9'M(X@TG<1"U.2Q4@FS<!U#]U^B
MTW@J,OT]:B)\[WP9N)D2(O "$UN7Q8?X$3+["FT+RQM@^QB M)2=SH=J5-.D
M1#<=SKI=0/SP9!D<MR[N-WV-QX42(8J.T!I!VQC?+,D_DJP0)"#!*/1?9.?D
MN/F0T"68(\F-"-6")*:G ]HJ5> 94)IB9@R@A6T@C%_J+,1^7-/@K 3ME,)L
M(4',<$R9#GW7ITMY"JUZB(,1^O2-*JC0A$7C4UV=0J*14<R(KJ5KFH(NU/9(
MJG \M5V#Q#!>LJ)#X./4TL %]'?(%F;1%F:#.KMU^1"80H$U6V3W@T^+GFP?
MQ]'J$Q&W^U,R=C,^!FM),F/Q*[H)54F/L5C-T.9PB,6)%8=A(-9*;5(2%0;1
MNL"\KZ_%< .L*:EE0!9CU+(S"U ,W4Y? _HC-AY<-":6R#B<]!9"7<1"B3:1
MH;6/B/M,-KK% X!QX?OM)!2\$>3_?[D/X'*"Z%(C4$#TC*;159IY!M/+NRQ-
MAM"/EFA96VSRC5B>QF;#*2HLO84K#^B9D7^'7,'QX;?1.8.%HG,O]+T*-1$?
M$?.=XU")VKIZ@=[_"]"CXJ/R>SAD%!+C G08]I7XA0K#)5Q][\HLSZ;G@GS<
M]$? 2RJ3VN<_0D[I-"*>S2;A@K-X 2[TJ\S6( *S4QV8[RZYI2-G>Z#%(NMX
MUS$]'= ,NKLT%" !4#6G1,/V=G9 '&!)E4(W 3E)M5)<J.L%_!I\>]9++S-I
MS /JDS VZ(ITA#;.+U:F[IIG]CDQ"+YG"&QB=V0Z'P2 GUWN1[OX& LHUZZ
M\G.HKCP1=XXD&UX$G\N@BGFC907UTT!VP2P=O<*S%M/*ON3VE09#$0&BH2\0
MEI'>N7A:I26!<62,\LY[K3:NQ)%8@:RJCBNK1+E7J79*$N>3_Z;_W;\AI<6.
MTW2X+_28TO9\]$3M#=/?63^EZ&3O\[D856%LX4)>AB&$\+5N0DL'DII*EBIY
M#W=^[:?]C&$8_E(@D!1QJ/D+ ?!X#S.$40S7A'2^AKL79LG"#J"HP85]FC/'
MX!FPC=!GJ"$QC<V>Z7#WY0\(53!%NDG*DK ?VQERK\>J[SN(I(@')F]5L828
MB0IHE$'$9! S<?!UA)HHX\:U54=T/%Q&N.?HU0C,(% Z;AO'0UI_16>C2W!*
MO[@UN+QH.G2HY.*Z)B2WQ&E(XI(BNT. U<JH%:*LY^*!V&,2(19QMG X80S%
M'JSQ4I29UN79Z<6RI Z: I '6S=@C=>[V("M;6IEC8:,)K:QIL-]K&LGHS2Y
M.=92OJ.'M8^<_RQ5>5+1H3"99(72?D;2JCL+ K;/7QV0S;XU7X4/%W756?&#
MF(\NSB[H_ZN+B_#MO72)!23!E+S,1O/9)?R=O9R+GVJCP'.XMFU&=K&1)@\9
MLA73T?1\(J;S2]=[ RM2Z(+2[<TOSL49\/K'/DMVPK)B-K\0LY=7XI^4KEP2
ME^>CR>5<?*Y;603[3E?^04Q?CBZG9_AB1IP,F4GL)TR'&PKOP:[O)4[(/-T?
M'+LR8E5K.H[[4DC!BD:'H@V5>QT;7DNO$:R;&-?X&[E:$F;;V&B'_T< 2VV+
M!:_>  "LM.SK5*NM4A8$$(@18 N<PDD,WU9&EAR$=:W&*-]NK[//-H"7>KG$
M@(Q\D;9?=\"- AAJ>-+9]QBRLSA@#34VL2'WT"#\8"P!2P878V7AAR:(.*3-
MM1MQP&W?R$KF6L8EQ\=8-Z4V?#@I8O4L;X,J>L=6K1@X8W&*MAP+:7U!!TE2
M$7<))UZ O%<J;4ZW1DF>6,"%_X002B\I_'U<^N.>@9'N\OJQN"J6S*?#-?-;
M-XJ&P,\']A8R-*-:;;C5C0DY'AZ^[NG'Z#CR[R"#6.JM X06W&YJ@,;)=##6
MB*7MZ7!MVUO*C9?VY_10H0SH@^*[.H]_BS;N>^FB<ZR&^HOZ$TB]1!ZD]2MD
M_AFVNAO75.+BSNZD0TZ33F.<7%.M- \'TP4J=Z1M1#_I ]D)97?"A'F'JJY.
MRR<OV L\TC7'XI,K/?;F#Y+>^].)^0+7'NZ'6$GJ#L,<'2&"<:IH:MA!]L\A
MXW-&O",0.%>8^;DRQC;0^(8=#; 12$)0T)6N .#[]R6$,VL\;O>*(E;N*%J>
MPU%T 6R$$_V[%HQ\71=Y4JK'?+]EM"714 H@%,Y [H8S/+;D)IV&1B1C(7TV
M7-KVMG'D83QRM4]Q2&*K#U1U2PR L6N_P6HKB'5I) (Q?>J*O8UNE*^G6-]/
M1VW$$:02DSR<H*-$,-2#I0^G<65PTT7A$@*G\]I@1F+N>;2I_D*>==F1N!</
MHNG KV>.->GF,GK%0RP+25?7!OO"N:F,IC^J#. ]<@UYO^=U))0$_ON8$WQC
MM$9RG_T&%W[)?3.!KAQS)&5HO!I#R1J87;F!$]_J!LO7EN,<UP@/+"&&^0*"
MUQ0*ZEA%^,:YFXR(+0Q'.VK729<*+Q0><=EK :+KK#HD"8,)-'+N&D[,' 3%
M?M,,#C10T12=I>Y9&%L".N#JL':9H7"*(C&%KM)_=LE&R-W3>&954WWE47%$
M_:)$4/G>$'8TOR4F5YDC0?EA#VU[8PK!C$'EZ(NHA,3#$\2I4<M"9:Z>M37M
MT)N-;92+*Q> S1 B081+J^LJ(K''X&BHUV#9&$"3&+>7!_*^ )6>Y+Q6]I%H
M:19[5K/AWM)=,D9UZW1_;;!"HIXRCOH$*@<+%D%Q7MAI4<&U;U39%/6#4FZH
M$"=;0::$*AGY,>SHLL?H25VB]^'& X$^(92/0'N5=\@GW.QR4C[J#[U0:8(6
M[(?-L7ZQ.RB##0KPR[B815?D:M=^2//3W>\VS&>2B2=80Z-N?@O^CMN[ZWA'
M+(;UF-S-!9"RVZ@?K*0-C\7=@7DZ%OT^^%DK-S3I!RKCJ%%0$TX.>BW1&FY8
M )'&U/=@[5YY>P\*[9GS2.I.F*72[,%JB ?,R->)?>*VRWC"M<<OK@7#><>&
MT$_1.,@')')WP@!$K+LVZ>;W!R\3J]VEWK,LV/ B&:? GHBZ]WI+]9V2(J:2
M+@0#C</7%.HL(5><(\>1 &DJ:LVXPI;3%B:SM"# 3[J!@WIG6>'X@0-!/]:
M9HDS#&CTQ6/MC%GLG<Z&^YD?>8#SL_SVU-SLZ(6IDQ['1/M-43Y-*$YJV:31
M[P.V%TTMR<[)/;@Y2 ZM8^B%@SG*^9@XD'HHS/?VSMI%P.G(]25WHG, 8HJZ
M3XAC]S%[[CWMX)6I]Q=9]\Y04\@62(%+[4P%X/8O/Z&[/:235F&P5R8JA0$'
MI@Q@=P;+RFIH_^Z9"^=HPZ[#/+3KUB*X^GYL;[*>L(/2[&6/=66C1FSRQ)0?
M#^*CZ^*@9#K:SY!3*QFBBS9I$',[V5/'(U*H;[290FZ<!QC@)QU(<:&$3 =P
M:;**;W#S*<0,W!M4Z"ML_01XJ3!4*$:LQQ%D0!F^H[MKH%%@X&= N"UMW*=D
M7P"K+0X[X@D>BW\D;\$FW+8\XE!VCH&>(AO)E7^#$YL*X8H>]-'+)4Y69A1G
MMALT1'R^S^\$ FM5HI2Q3"H+6BHB%3\ZX+_BD+%GQL%X%KZD4ILX/)Z89M2C
M<R-.?J7^1OKV<.C'VRPMBV>])Q2:3$D>=4!OAQ]Q,1"3S?2LT$-.NP_4V/Z!
M<H5DJL$=UAN9'YL%-S&XL.@:;>@I:@?B],36%^(0=-T!(/O3<J^*NO'M[1YA
MWG&ZJCLI\2D/N4!71RJSMJ.Y_AK-!^$"OL$-N<8>/J.U<EQ3BL3LH'3\N1H?
M:,!'N0 GWI-02K<CN*!QBN% !YRB)WM7WV0 AZ2]M&=$4$63\<T,22ENK['O
M%<'/T9)]W4M=\)!@^N@+/=+ 11ZN'^!3%7OWQF,IFIQI":?PM-!?P5V> G17
MIWO:RT,^-(X$S(9[\S>]Z@C[NB=[TV$2:4F&"ZU]HM@ /*YNXPH]EDX^@[\K
M*Y&CY$8BCOC'%D4:OR?5JUBTQXM(3PZW=PI,V!>,<57+U<J<XG/9=O'Y(S!
M&@9B4Q2-J^\V7$5>P*;\)&XZFI-8 O,S5.Z=Q:&!V7#3_H/'L%N0)(7L3U;J
M,('?8"LN,FH\"8&/L&:T2QV_XJQ$<]C;M5S$R37$]#ZF36YP$U$;>OA:Y:>^
MBEEU5&3#44-<SCH76X* 7;+2M7@R^0FB^-R6?UKKO2Z(]#&\K31%V\HA>TV
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
MA,K3M+M7>W!Z'?:=N7942.%S1>LJ&L] ]PM-#W]W\ IV"_#T%U!+ P04
M" #3@612'9-F=X("   E!0  &0   'AL+W=O<FMS:&5E=',O<VAE970S,"YX
M;6Q]5$MOVS ,ON=7$,8.&Y#6CSBO(@G0M"O60[NBZ=;#L(-B,[%06?(D.6G_
M_2C9\3*@S44F*7X?'R8UVRO]8@I$"Z^ED&8>%-96%V%HL@)+9LY5A9)N-DJ7
MS)*JMZ&I-++<@TH1)E$T"DO&9;"8>=N#7LQ4;067^*#!U&7)]-L2A=K/@S@X
M&![YMK#.$"YF%=OB"NV/ZD&3%G8L.2]1&JXD:-S,@\OX8IDZ?^_PD^/>',G@
M*EDK]>*4VWP>1"XA%)A9Q\#HL\,K%,(141I_6LZ@"^F Q_*!_<;73K6LF<$K
M)9YY;HMY, D@QPVKA7U4^V_8UC-T?)D2QI^P;WQ'PP"RVEA5MF#*H.2R^;+7
MM@]'@$GT 2!I 8G/NPGDL[QFEBUF6NU!.V]B<X(OU:,I.2[=3UE93;><<'9Q
MKRS"$,[@5NY06J4Y&OC\Q-8"S9=9:"F$<PRSEF[9T"4?T,4)W"EI"P-?98[Y
M_P0AY=8EF!P27"8G&:\Q.X=!W(<D2J(3?(.NX('G&YPHV$!3X FZM*-+/5WZ
M =V*MB2O!<+W3=?"-[BJM281+F4.]S1[!_V7CPM/^&IA*53V\ON]%I^,Z+;T
MPE0LPWE :VA0[S!P7<)RC=IUJN<Z1>V*I[U'MJ=AL:@Y$P8^D;$_&L1.&/7'
MXZ3W3!MSQN59I56&QD#<3^,1G</QM'?#):>YRF&K5&Y@V$\G4QA-!KU5757"
MC4G<'Z6Q.Y.H]Z0L$\"/AHB"3/OQ>$S"@,(.4WBOW>'1Z):HMWY!#62JEK:9
MXL[:O0&7S>C_<V\>D#NFMUP:$+@A:'0^II73S5(VBE657X2ULK167BSH'4/M
M'.A^HV@V6L4%Z%[&Q5]02P,$%     @ TX%D4I#VV7W: @  V@4  !D   !X
M;"]W;W)K<VAE971S+W-H965T,S$N>&UL?5113]LP$/XKIX@'D#R2N&F:HK82
M!:9-&E,%;'N8]N FU]8BL8/M4-BOWSEILR)!'^*<G;OOON_BN\E6FT>[073P
M4I7*3H.-<_5%&-I\@Y6PY[I&15]6VE3"T=:L0UL;%$4;5)4ACZ(TK(14P6S2
MGBW,;*(;5TJ%"P.VJ2IA7N=8ZNTTB(/]P9U<;YP_"&>36JSQ'MV/>F%H%_8H
MA:Q06:D5&%Q-@\OX8IYX_];AI\2M/;#!*UEJ_>@W7XMI$'E"6&+N/(*@US->
M85EZ(*+QM,,,^I0^\-#>HW]NM9.6I;!XI<M?LG";:9 %4.!*-*6[T]LON-,S
M]'BY+FV[PK;S3<8!Y(UUNMH%$X-*JNXM7G9U. C(H@\"^"Z M[R[1"W+:^'$
M;&+T%HSW)C1OM%+;:"(GE?\I]\[05TEQ;O9=.X04/L'"T(\V[A6$*N#FJ9$U
ME=[!Z8-8EFC/)J&C;#XFS'?(\PZ9?X <<[C5RFTLW*@"B[< (='LN?(]USD_
MBGB-^3D,8@8\XM$1O$&O?=#B#8YHM] )/ *7]'!)"Y=\ +>O((-%*:AT;POY
MN\T##_CB8%[J_/'/>R4]FL$WZ(6M18[3@#K0HGG&P%<%JR6:OC*TQ&/XYM/[
M1U:UT<_H25@X <[9:#3HC"2+8-[(LI!J;2$9L30=0)(P/HSA5N0;2F^Z"X&]
MCIB3VV@,<3QD?# Z4-C0;S:PDDJH'*%$ZA7@;)B-:8VRF&A%;!0E$&<)BQ)B
MB-925^9-U93"84'-1*IR*;IV]?0K;9S\VQV<CE.69@F<P6F6,IYX*XX(BA2/
M1RR+AG"EE76FZ?I=*B#A:^.SI"Q.*3'+>/KVHO>Z&"B:@"<D*V)$D*SQF*6#
M&-Z[&.%!OU5HUNU4L9#K1KFN]?K3?G!==OWZW[V;>K?"K*6R5*X5A4;GHV$
MIILDW<;INNW>I78T"UIS0\,7C7>@[RM-MWBW\0GZ<3[[!U!+ P04    " #3
M@612DY=9<7$#  "?"   &0   'AL+W=O<FMS:&5E=',O<VAE970S,BYX;6RM
M5M]OVS80_E<.PAX<0(TD2K+LP#9@I\U6H#^"QMTP#'N@I;--1!)=DHK3_?4[
M4HJ2=K:0A[U81XKWW7??'76>':6ZUWM$ X]56>NYMS?F<!4$.M]CQ?6E/&!-
M;[925=S04NT"?5#("^=4E0$+PW%0<5%[BYG;NU6+F6Q,*6J\5:";JN+J^PI+
M>9Q[D?>T\47L]L9N!(O9@>_P#LW7PZVB5="C%*+"6@M9@\+MW%M&5ZNQ/>\.
M_"[PJ%_88#/92'EO%^^+N1=:0EAB;BP"I\<#7F-96B"B\:W#]/J0UO&E_81^
MXW*G7#9<X[4L_Q"%V<^]B0<%;GE3FB_R^!MV^:06+Y>E=K]P[,Z&'N2--K+J
MG(E!)>KVR1\['5[CP#H'YGBW@1S+M]SPQ4S)(RA[FM"LX5)UWD1.U+8H=T;1
M6T%^9O%)&H0,WL"O4A9'49; ZP+>UX;7.[$I$99:H]$P6G-:Z8M98"BJ]0WR
M+L*JC<#.1(@8?)2UV6MX5Q=8_ @0$-V>,WOBO&*#B&\QOX0X\H&%+!S BWL-
M8H<7#VB@H4UP "[IX1('EYR!NZ.+4S0DG=P^J_J7@X<U/AI8E3*___N4DH/
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
M[GBI5A)^+5.6[@,,T:W6-W?KVY7;B7C#D@%XQ ;7<9T./*^-U3-X7D>L$NH
M.^#\%LXW</X9N%LF)6-VG3D;+G&F)- RA=N,SK,\4QF:^\O8@R?VJN JY\GS
MWZ=2VVE)"W,LUS1A4PN5)YEX89;.#BOF3+09P@N)P<CJ@B\N*LF &I_&\#DK
M:9DPR W)-I1,V9"525XA4SB >X$R%^K-N,]^5-D:A:>@1_KP"8CM1E%]=SSX
MB@NIRLIE@P:>8T?$@] >11X\<45S$,=.X'[/M8E#<!#9432J\P;Y>ZX._30F
M0S<V]Y%/3IHF)$#3410WIO-#5&V8V)'OXR"V \^!#NZ#EOO@)]P;SJ^Y5!]D
MN!/O-,-_,BIJ,<$9LO?R!0EZ,X;+@@N5_4--T^.+,USXKJNO7@!?2L70I )<
M?IR\,(8@/$R\L00><A(B,['GP^,*C5X@4+&[(O0#?._[+GRC(C-9VGE+XA@(
MLKK+FWGQ"0+;B8U_MN/$77R-6KY&']-J$]J;#7=450)''^2O$_\T?UMVFM;Z
MGL3F ?*HU> 'NC0]FX21?N0B*QZXJ*E83W&()>O:P8CHJ0\!5K)K^V2DIP%*
M )_;7A#!TPIYI LD =NY&]H!\?9RNZ9O6M124S9"*RA;Y ?+I4*E"V;\+HU_
MV;8D>BZZTL<VX-@A>M''/F$6P0O-*Z:KZ[AB:LDVRKRNA-#KU[HFZWH\WJ&[
M3,\+ VW)Q1[CX^"6E\O=>MI;[]9=R3.)PTAC0KJ*)&R+)/RYJ+$.1%&W\9M,
M)B8Y#U1_./ $U/2L_][?NPV?4?=W<Z1@Z05]P<I9,B1)'[/>96CRTWO#-B'[
MA[W3&XQ"O*!^C[HFB098>-' (\<FTFW,N(4=8@8#K,Y?\.8[>#ONQ@-OA,_]
M08"O._B(6CZBSK1\55C1V)_JHZ<NGP>6HULI*+YC75-U(+6/D=)I_?^VY&LJ
M5RBU+#7U0HVZY-ZW%J." OVLD$ZMC5.:&._$EVC$!9Z>L00%+V!Q^)'L(<E:
M$3WLU/V.C?R0L)YG^Q$Q K=C1X/4>?R U9[OZG[0\SVMUA.'#N!SA<5:A\Q>
MDQ4ML;QT3O:0]H0=."%$I\\PY^$.HMH#]&T_)+I3X'?N5$$.=P[.!1-+\WL@
MP2B@/D.W3]L_D,OZX/V^O/Y]N:-BF942G5C@5F<0X@=?U+\$]43QM3F&S[G"
M0[T9KO OB@F] -\O.!Y/FXDVT/Z7S?X%4$L#!!0    ( -.!9%+E<NK8M (
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
MA4L<7/(*W)&RM9(57.T-*L%*N'"GADK#Z@D^HLP5JPN>PCDUC88?+CK<X][
MHI3IX\^7B.Z,:QMUHFN6XLRC3M2HMNC-OR-3#?% M&&U0M521Z]H;%\CN*%&
MUXSJM]GES]DIS*E+)O @N"&(.\,L56\@[B?^N#]P4NP/QT.2HD'D)W1I+IA@
M&8->2!81Q ._3Z&BT!_V$KB7AK@@KU'?'X?6*QZ._5[D_(>Q'R5CZ#B"?GL$
M_<XCN.2:Y3DESUR3RW5[C_^.Z$[T_R+ZRY;6#0TP6WH2^8-Q^"()2\F% 2X:
MVR3Q8]I^3\_S2?T[B\')1*"KF+NYIR&5&V&:X="NMJ/UO)DHS^;-7+YF*N="
M0XEK<@W/AD29:F9=HQA9N_FRDH;NO1,+^CV@L@:TOY;4=0?%!FA_.//?4$L#
M!!0    ( -.!9%(Z*[H2(@8  ,\/   9    >&PO=V]R:W-H965T<R]S:&5E
M=#,X+GAM;*57;6_;-A#^*P>C!1Q C27J/4@"Q$F+!5B[($D[#,,^,!)M$Y%(
MCZ3C9+]^=Y2LN*OC&2@,2!1]O)?GGN.1IVMM'NU"" ?/;:/LV6CAW/)D,K'5
M0K3<'NNE4/C/3)N6._PT\XE=&L%KOZAM)BP,LTG+I1J=G_JY&W-^JE>ND4K<
M&+"KMN7F92H:O3X;1:/-Q*V<+QQ-3,Y/EWPN[H3[NKPQ^#49M-2R%<I*K<"(
MV=GH(CJ9%B3O!;Y)L;9;8Z!('K1^I(_K^FP4DD.B$94C#1Q?3^)2- TI0C?^
M[G6.!I.T<'N\T?[)QXZQ/' K+G7SNZS=XFQ4C* 6,[YJW*U>_R+Z>%+25^G&
M^B>L.]D<A:N5=;KM%Z,'K53=FS_W.&PM*,(W%K!^ ?-^=X:\EU?<\?-3H]=@
M2!JUT<"'ZE>C<U)14NZ<P7\EKG/G7[03$&7P :Y5I5L!]_Q96!C?\X=&V*/3
MB4,C)#JI>H733B%[0V'$X+-6;F'AHZI%_;V""7HWN,@V+D[97HU7HCJ&. J
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
M@#/P@_/19 #M<CGJ0MO[DE%C4/(?"E,Q7<A2),P&$JI](#C6:-ZR0IXZ(T$
M/MEI@]_OD^9';84J3(V'PX/5<4#_&G(UJ'(U.#E7RXW(R$_R[]2TN<HX+6G-
M;ARR<U-E9U%E!VK8WI38+AG;]XSM!X<M.)2\*Z%$%N$YU$G@\E_+%2\9V1J0
M7A%C]")&E\<54OM':L*1$L;(1$:">RKU@QYGJ-<=NQ?EK.TM4KW+K*D)D\=)
MKM,7<.ICIOPP)%WA.(!P,/%NB2O1+L\9@"WF4L<UPAJP&H[Z[(=,3C\<\7-
M2H_B0I1[26?'NQ]<:R#8L"+8L#&S]_]!#NA^_!^-X31R-;K M_NEV8H(9RTR
M8#!_PM:\2-8;N3IZ&RR2A"Y7+G:R!=)BRE5#TMXU6B&5 ;'B0']6]@>*O+@(
M7B9C2:322L9.],'2RR7:>\4X?]*9HT'5W_@Q9EP_$UD*BC:VO$M'L()8,J)%
M(1II0[\>""(9H=LY-AS:3E![+_DG&32";@WO5F?O3/U8?TARS"HB8!%YT?:\
MA3$ZDB[,6B/T\9E]P';5$GVNK#Z,#TQ@J5((_%*H[5'-%'73G]1[\)J&,O"5
MNU1>:<67WJ_- E32([8_@* 'C%01Y:F^3T9 ?C%*C<[[7.QM&$$0EFW^YSY#
M[8=Y=>@!9US=DS(-1=$. WBM3CNUT2C%?.T&0$/)(=H74U+UM9HQ%\5H]4.\
M&% _B7PMR1>%"1WM7HRHF>?%T%=LK-ZZ06NE+8UM;KFA.1ES%J#_B:8)H]RP
M@6KRGO\+4$L#!!0    ( -.!9%)F<EG"]P(  /$&   9    >&PO=V]R:W-H
M965T<R]S:&5E=#0P+GAM;)V5;4_;,!#'O\HIV@N0.O+8M*"V4@N;AC2F#AC3
M-.V%FUQ:"\?N;(?"M]_9*5F1:(5XX]B.[W\_GWWGT4;I>[-"M/!8"VG&P<K:
M]5D8FF*%-3,G:HV2_E1*U\S24"]#L];(2F]4BS")HCRL&9?!9.3GYGHR4HT5
M7.)<@VGJFNFG&0JU&0=Q\#QQS9<KZR;"R6C-EGB#]L=ZKFD4=BHEKU$:KB1H
MK,;!-#Z;96Z]7W#'<6-V^N!VLE#JW@TNRW$0.2 46%BGP.CS@.<HA!,BC+];
MS:!SZ0QW^\_JG_W>:2\+9O!<B9^\M*MQ, R@Q(HUPEZKS1?<[J?O] HEC&]A
MTZ[-LP"*QEA5;XV)H.:R_;+';1QV#(;1'H-D:Y!X[M:1I[Q@EDU&6FU N]6D
MYCI^J]Z:X+ATAW)C-?WE9&<G-W3*92,0+B_A(]PQT; V6K*$[PT3O'KB<@G3
MHE"-M :.;ME"H#D>A9:\.XVPV'J:M9Z2/9[B!*Z4M"L#GV2)Y4N!D+ []N29
M?98<5+S X@32N =)E$0']-(N%JG72_?H?5,6#;0;/""7=7*9E\OVA;:]YZ"J
M-\3UMW<+M_AH8294<?_GM0@?=.CR]\RL68'C@!+4H'[ 8#)C@LD"@9$N+KF4
MSBTAS5%S5<+YBNDEEF 5S+6JN/6$7Y4Q<$$7HTV=2JL:KEM% SN*=)([6K^0
MZ?9PR;; >H&Z.YXSF HJ -Z02@F4JEG8JA&4EML(?(!A%$.61G"4Y1D<T\0@
M'^R&[J4 5J@UN>*R4#6"98_ C$%2RGMQDD.2D5*<#DDI[R7)\ !>?/H6O#R/
MJ$WI'G\@X4'L$1WS.Q!/>UF:0IKUX2CMY?W$0SKJ Y##MT!F@X%KLU,'F>2Y
MAW3D[X",HUX6IQ#W!D/B3'J#O$]R+?IK^1'NE*$:Z5JY8FO L[45J9OMZOFT
M+6/_E[>/P17=2BX-"*S(-#H9] /0;8%M!U:M?5%;*$LETG=7]":A=@OH?Z4H
MF;<#YZ![Y2;_ %!+ P04    " #3@6128E;1S=D!  #W P  &0   'AL+W=O
M<FMS:&5E=',O<VAE970T,2YX;6R-DUUOTS 4AO^*Y2N0H$[2;J IC<1:(4""
M5>L&UVYRDECS1[!/FL*OQW:R*A?KQ$WL8Y_G]7E]XGPP]LFU $A.2FJWIBUB
M=\.8*UM0W"U,!]KOU,8JCCZT#7.=!5Y%2$F6)<DU4UQH6N1Q;6>+W/0HA8:=
M):Y7BML_MR#-L*8I?5ZX%TV+88$5><<;V ,^=COK(W96J80"[831Q$*]II_2
MFTT6\F/"3P&#F\U)<'(PYBD$7ZLU34)!(*'$H,#]<(0-2!F$?!F_)TUZ/C*
M\_FS^N?HW7LY< <;(W^)"MLU_4A)!37O)=Z;X0M,?JZ"7FFDBU\RC+FKA)*R
M=VC4!/L*E-#CR$_3/<R ='4!R"8@^U]@.0'+:'2L+-K:<N1%;LU ;,CV:F$2
M[R;2WHW0H8M[M'Y7> Z+'P:!I.0]N;,-U^(OCY?[9@O(A73D 4[8<_DV9^@/
M"P@K)^';43B[(/R-ZP59IN](EF3)"_CF=7P+Y26<>8MGG]G99Q;U5I=\]NH
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
MQ*2R,_[LQLA5>HA]+PVDF5XN&0V9L@+P_5Q*\W)C'12_M)S_ U!+ P04
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
MW>UY,+EMMK9MR1%)%%L2W'VU?L#6@FI+IFFY0R\X/ ,WBX'O_W*+*[C<A/%
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
MSKM:E*BG?GU1O+1S<,:5GJKVF.M%"<(XZ/<YU[.PN9@ [>H=_@502P,$%
M  @ TX%D4BX9%0QO @  R04  !D   !X;"]W;W)K<VAE971S+W-H965T-#DN
M>&ULM53!<M,P$/T5C:>'=J;$CILFH>-XIFDH]%#(-!0.# ?%WL2:RI*1UDG[
M]ZQDUQ,@R<"!BZV5M&_?>](JV6KS9 L 9,^E5'82%(C551C:K("2VYZN0-'*
M2IN2(X5F'=K* ,]]4BG#.(J&8<F%"M+$S\U-FN@:I5 P-\S69<G-RQ2DWDZ"
M?O Z\2#6!;J),$TJOH8%X&,U-Q2%'4HN2E!6:,4,K";!=?]J.G3[_88O K9V
M9\R<DJ763RZXRR=!Y B!A P= J??!FY 2@=$-'ZTF$%7TB7NCE_1;[UVTK+D
M%FZT_"IR+";!.& YK'@M\4%O/T"KY]+A95I:_V7;=F\4L*RVJ,LVF1B40C5_
M_MSZL),0]P\DQ&U"['DWA3S+&4>>)D9OF7&["<T-O%2?3>2$<H>R0$.K@O(P
M_:@1V("]83-A,ZU0J!IR]JD"PYUKEIW. +F0EGV&9ZRY/*.]UY@5PI*GMSP3
M4N +^W8/Y1+,=W;"A&+W0DJ7G(1(%%VA,&OI3!LZ\0$Z,\AZ+!Z>LSCJCQX7
M,W9Z<O8K2D@".Y5QIS+VL(-#L,)6VG+)WAM=5^?L3F6RSH5:'Y!]SFZ(OLC;
M<)^.IN#8%W0W?Y->C'IQ$F[VT+SH:%X<I3F7/",:Y. [F[G<1R502'8+2U-3
MRSA7QIW71WP9= 4'1PNV969 [@BT[ $D1V* FLT--;ZAHUUP"7M/LH%^N^-
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
MT>TW"F.@OZ^X;G_*B0E0-?23WU!+ P04    " #3@6127#>X3V(#  #)"P
M&0   'AL+W=O<FMS:&5E=',O<VAE970U,BYX;6RM5M]OTS 0_E>LB(<AC25.
M\W-J*[$.Q"2&*L;@ ?'@)=?6(K&+[:R#OQ[;R=*T2:N"]I+$]MWE^SZ?SS?>
M</%3K@ 4>BH+)B?.2JGUI>O*; 4ED1=\#4RO++@HB=)#L73E6@#)K5-9N+[G
M16Y)*'.F8SLW%],QKU1!&<P%DE59$O'["@J^F3C8>9[X3)<K92;<Z7A-EG '
MZGX]%WKDME%R6@*3E#,D8#%QWN++&0Z-@[7X2F$C.]_(4'G@_*<9W.03QS.(
MH(!,F1!$OQYA!D5A(FD<OYJ@3OM/X]C]?H[^WI+79!Z(A!DOOM%<K29.XJ <
M%J0JU&>^^0 -(0LPXX6T3[1I;#T'9954O&R<-8*2LOI-GAHA.@XX..#@-P[^
MJ0ZCQF%DB=;(+*UKHLAT+/@&"6.MHYD/JXWUUFPH,]MXIX1>I=I/33]Q!2A"
M;]!<Z-00ZC<B+$?O?E5TK3=+=1;.T;P@>F9W_>P:%*&%?*TM[^^NT=FKU^@5
MH@Q]6?%*:ELY=I7&:?[F9@VFJQJ3?P#3-607:(3/D>_YWH#[[&1WG.ZZNUJ=
M5B*_E<BW\8(#\7:4@6?FYV@IN!QD5X<+;3ASC!ZG^E#%7C!V'[LL^F8X";P@
M;<UVT(Y:M*.C:#^"E/IP9%59%41!KG-:G^^,DOK4: JDY$+1/W9B"'X=/^K@
M>I-&4;(/?\ LB?P@&(8?M/"#D\0>S+9S] GTX]U35E0Y94LTXTPJ4=45X8:9
M7%T*&-Z5H(<7>X%-L!U:?;,T3KQPF%78L@K_*X48J"&H81\J]G!O!_IF:1J-
M\##4J(4:'<\? _&F7 O^" :D1-]OH7P \>/(48K;X/'+'J6X1]'WXWBT)\20
M59!XPT(D+=;D*-:KBA8VR4[@G[8QTY?EG_:8!7$4[?,?L K\\$ B8&][-7A'
MT=Z2;*6GQ/Z=<((@N'/_X)>5I(FW<SK\.(K3/5&&['#HC^(#LFRO WS\/M@*
M<<]R$.@]981E@#Z";B=.$F=;R_'Q8O[OXO2KLA\F/6D&K+SD4+YL2S<^7KMW
MJC'=5N.3--F64ORBM;2)UKUF(QSME](!*YSXT9XB;J?/,DWN+1%+RB0J8*'=
MO(M8^XNZ;ZP'BJ]MZ_7 E6[D[.=*]]H@C(%>7W#=?C4#T\VUW?OT+U!+ P04
M    " #3@612CG$JZE<"  !R!0  &0   'AL+W=O<FMS:&5E=',O<VAE970U
M,RYX;6R=5$USVC 0_2L[GAR2F10;$YPT8SP#H1\YT&%"TQXZ/0A[P9KHPY%D
MG/S[2K)QZ)1PZ 5K5_O>VR>T2ANIGG2):."%,Z$G06E,=1N&.B^1$SV0%0J[
MLY&*$V-#M0UUI9 4'L19&$=1$G)"19"E/K=462IKPZC I0)=<T[4ZPR9;";!
M,-@G'NBV-"X19FE%MKA"\U@ME8W"GJ6@'(6F4H#"S228#F]GB:OW!3\H-OI@
M#<[)6LHG%]P7DR!R#2'#W#@&8C\[O$/&')%MX[GC#'I)!SQ<[]D_>^_6RYIH
MO)/L)RU,.0EN BAP0VIF'F3S%3L_8\>72Z;]+S1=;11 7FLC>0>V'7 JVB]Y
MZ<[A ! /WP'$'2#V?;="OLLY,21+E6Q N6K+YA;>JD?;YJAP?\K**+M++<YD
MWZ1!N(8/\$7*HJ&, 1$%W M#Q):N&<)4:S3:%JSL?2AJFY&;M^+S.1I"F;Z
M,Z "OI>RUI9 IZ&QS3F),.\:F;6-Q.\T,HQA(84I-7P2!19_$X3656\MWEN;
MQ2<9YY@/8#2\A#B*H\?5',[/+D[0COH3&WG:JW=H]]Z/66R18X]TX[#+HC3<
M'1&[ZL6N_ENL128'8G'\\69\7'#<"XY/"Z+ '8$EK1#N)*^(>+VTU\&>Y*\%
M\C6JWR>.,.E%DI,BT_RYIIKZL72WJ=4\]W=Q='',:_+/P1[S&A[, 4>U]=.N
M(9>U,.U(]-G^09FV<_16WKY&"Z*V5&A@N+'0:'!MM54[X6U@9.6G:BV-G5&_
M+.VCB,H5V/V-M&ZZP GTSVSV!U!+ P04    " #3@6124K(V=$H#  !J#
M&0   'AL+W=O<FMS:&5E=',O<VAE970U-"YX;6RU5]MRVC 0_16-IP_-3!M;
M\@TZP$P"T\M#VDQ(VX=.'P1>L":R1241TGY])>&8BPVAT^0%2];NT=GE:%?N
MK82\4SF 1@\%+U7?R[5>O/-]-<VAH.I<+* T*S,A"ZK-5,Y]M9! ,^=4<)\$
M0>(7E)7>H.?>7<M!3RPU9R5<2Z2614'E[TO@8M7WL/?XXH;-<VU?^(/>@LYA
M#/KKXEJ:F5^C9*R 4C%1(@FSOG>!WPUQ8AV<Q3<&*[4U1C:4B1!W=O(IZWN!
M900<IMI"4/.XAR%P;I$,CU\5J%?O:1VWQX_H[UWP)I@)53 4_#O+=-[W.A[*
M8$:77-^(U4>H HHMWE1PY7[1JK(-/#1=*BV*RMDP*%BY?M*'*A%;#C@ZX$ J
M!W*J0U@YA"[0-3,7UHAJ.NA)L4+26ALT.W"Y<=XF&E;:OW&LI5EEQD\//@L-
M*$5OT0<ALA7C'-$R0Y]*3<LYFW! %TJ!5L9@O/ZCD9BU++\>@::,JS-C^'4\
M0J]?G:%7B)7H-A=+92!5S]>&KMW4GU;4+M?4R %J(YB>HQ"_020@08O[\&1W
MW-UU]TV2ZDR1.E/$X44'\!I!OT$?I%"M@:V18H=D#]+] )-N$O;\^VW^32L2
MXZ VVF$9UBS#?V5Y,9TNBR6G&C)$"R$U^T/M$6HCO@9/MBB])5$4[Q%OL<(D
M[;8SCVKFT:G,:<6\!-U&,FILCX,8=_9(MEB1$+=SC&N.\5&.0W<@0:(;X"Z'
M*F<+A7Y<03$!^?.(RI)ZA^395)8T(NQ&07<O#4TC'*:=]C2D-<GT)466ML@G
M":,]XBU6'9*V$^_4Q#O/I+%.8_<T3??/0=,HC@\HK%LS[!YE>"MI9AJU:>*N
M$+LI^DP+.$EE.-B4_>#9=%9!;<<9$K*?C!8KC$/2G@Z\U9_P2VJM0M^144J"
M?>XM5E%\B/NF8^"36\83<JN DIU>$#12W.P82>= P\";CH&/MXPO.C<5K=G3
M3]';IKCCDZO[TWIKENZ0'.@N>%.Z\?':_;]"BIL2Z1XX['A3[?')Y?XIA23-
MVT*X7\?]K8N@O85?43EGI4(<9L8K.$^-NUQ?;-<3+1;N;C@1VC0V-\S-QP!(
M:V#69\+<#ZN)O6[6GQ>#OU!+ P04    " #3@612CYU DG4"  #9!@  &0
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
M!K2^E-2TFHGM@>T_S^0W4$L#!!0    ( -.!9%*E.S7&  ,  ! )   9
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
M[G^_.SN^P5:J%YT#&/)6<*&'7F[,^MKW]2*'@NHKN0:!7Y92%=3@5*U\O59
M,^=4<#\*@M0O*!/>:.#6[M5H(#>&,P'WBNA-45#U>PQ<;H=>Z.T6'M@J-W;!
M'PW6= 4S,$_K>X4SOU;)6 %",RF(@N70NPFO)SUK[PR>&6SUWIC83.92OMC)
M;3;T @L$'!;&*E!\O<($.+="B/&KTO3JD-9Q?[Q3_^)RQUSF5,-$\I\L,_G0
MZWDD@R7=</,@MU^ARB>Q>@O)M7N2;6F;QAY9;+211>6,! 43Y9N^5778<PC3
M(PY1Y1 U'8Y%Z%0.'9=H2>;2FE)#1P,EMT19:U2S U<;YXW9,&%W<684?F7H
M9T;?I0'2)Y?D&V Q]&Y )E(;<CX%0QG7%[C\-)N2\[,+<D:8((^YW&@J,CWP
M#4)8*7]1!1R7 :,C <.(W$EA<DT^BPRR]P(^TM<I1+L4QM%)Q2DLKD@G_$2B
M( I:@";_[1[V3^!TZHIVG%Y\1.^FD,JP/]2=4KDDRAZD2[F\W&!9J=9@6JM6
MBB9.U/YZKZ,XB@;^ZWXB+3:=I+9Y1QO7M/%)VEMA0 'N-<)RM_.<T3GCS#!H
MY2SETCV&;K^!>6B2=-LIDYHR.4GY8PT*"RI6%>,"3V<;7'(0N9/&W0;>H5'8
M[\3M@&D-F)X$G.6XZ9=8RN(#PO2P?''2 #RT">,X:@?LUH#=DX#/5.&^<O@
MK]M2F^;VMMC$83M=KZ;KG:1[E(;R#]!Z!X<_"?K-/^30* Z"?@/.W[LN"U K
MUT4T!MX(4UX[]6K=J&[<_=Q8'V,#*_O-/YFR^]U1M6)"8TI+E RNNHBDRHY2
M3HQ<NTMY+@U>\6Z88Q,&90WP^U+BQ5Q-;("ZK8_^ E!+ P04    " #3@612
M56*L*6L$   #$P  &0   'AL+W=O<FMS:&5E=',O<VAE970V,2YX;6R=6%V/
MVC@4_2L6ZD,KE4GL?,$(D(9!U:XT[8XZT]V':A\\8,!J$K.V,[3_?J^33 (X
M"=Y]@<3VO>>>:_M<Q[.CD#_4GC&-?F9IKN:CO=:'6\]3ZSW+J+H1!Y9#SU;(
MC&IXE3M/'22CF](H2SWB^[&749Z/%K.R[5$N9J+0*<_9HT2JR#(J?RU9*H[S
M$1Z]-7SEN[TV#=YB=J []L3TM\.CA#>O\;+A&<L5%SF2;#L?W>';%8F-03GB
M3\Z.ZN09&2HO0OPP+[]OYB/?1,12MM;&!86_5W;/TM1X@CC^J9V.&DQC>/K\
MYOU321[(O%#%[D7Z%]_H_7PT&:$-V](BU5_%\3=6$XJ,O[5(5?F+CO58?X36
MA=(BJXTA@HSGU3_]62?"Q8#4!N3" (<]!D%M$+@:A+5!6&:FHE+F844U7<RD
M.")I1H,W\U FL[0&^CPW\_ZD)?1RL-.++T(S-$5C], @>PH>/A6ZD Q]IO#'
M-8<VL:UZT0.G+SRM&M^OF*8\51_ Y-O3"KU_]P&]0SQ'SWM1*)IOU,S3$*"!
M\=9U,/=5,*0GF!5;WZ  ?T3$)WZ'^<K9'$_/S3U(2Y,;TN2&E/["'G\0!3C;
M\ISF:X;2,D%=I"HO4>G%[+/711B%,^^U SIHH ,':-C=DFJ>[P; *S_Q"7B
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
M#-GCPQ0='YV@(T0Y^K46J3*\:NAJDXR5Y$:%\*M<N+]'^!2B<Q3@4^1[OM<
MGQP,QX-=N&M*6-;1+^OH9WR=O7Q+D+88D8C-$E,DFZ0)([PIM9RKFW'9A;89
M=_JX/W0WU03J05W<]<J@'9E!*3-HE6FFOIG8'%E_@$>OR&P$6R*M;*ZE65.-
M3N2<O8J2,UR5DNMMB@K"9KV=4F^G76\YKT[1#4]2K4[1+6R (8S^S"">@_S;
MXEZW_$WW"]WKUA(-PK#SH1KUH([?VU.-7BFS]PWN]6I*/CK7%K$CM%\*[7_2
M-O\0V\+R-^$7VA;6L@R#X$,E&F)"O[D6@U+DX!M,&QRTY)JB]BTY[+T?"=XG
MW0L.<0]7SA[\A?X59&T3N35D5^3[QH[;=_;/^8?KNW=-;%M(+M:M'.SV5C4C
M<D6Y0@R6!N.=]PU8YA>5O*-%DIWU<Z'-S2%KKLWE#J0-,.-+8<[[HF.O#^5U
M<?P?4$L#!!0    ( -.!9%(+S%V!6P,    *   9    >&PO=V]R:W-H965T
M<R]S:&5E=#8U+GAM;*U66V_B.!3^*T?1/+12AY  *:T B9*R,])T5/6R^[#:
M!Y,<B#6.S=I.8?;7[W$2,NEP64;:%["=<SY_Y^HSVBC]S62(%K:YD&;L9=:N
M;WW?)!GFS'34&B5]62J=,TM;O?+-6B-+2Z5<^&&W&_DYX]*;C,JS1ST9J<(*
M+O%1@RGRG.GO=RC49NP%WN[@B:\RZP[\R6C-5OB,]G7]J&GG-R@ISU$:KB1H
M7(Z]:7 ['SKY4N!WCAO36H.S9*'4-[?YG(Z]KB.$ A/K$!C]O>$,A7! 1./O
M&M-KKG2*[?4.?5[:3K8LF,&9$G_PU&9C;^A!BDM6"/ND-I^PMF?@\!(E3/D+
MFUJVZT%2&*OR6ID8Y%Q6_VQ;^Z&E$ 9'%,):(3Q7H5<K],Y5Z-<*_7,5!K7"
MX%R%J%:(2M]7SBH]'3/+)B.M-J"=-*&Y11FN4IL<S*5+K&>KZ2LG/3OYJBQ"
M$,!'B%'S-^;B#)^EL;J@]+$&F$SA$Z8K+E<P=6G +4<#%S%:QH6!%]S:@HE+
M0J!04R EW&^3C,D5NH,-TRG\^8#Y O5?\ &XA)=,%89@S56U?^!"4)*9D6_)
M($?+3VKR=Q7Y\ CY((0')6UFX%ZFF+X'\,D3C3O"G3ONPI.(,28=Z 57$';#
M[NMS#!<?+@_PFIV-$MP<1XG/1QD>1[G_!8MFTV,H\U^PZ"#*.W?WFNSKE;#]
M(["ODIJAX/]@"E^4,4"M9I=$LT)KE,GW5EY2PBR0>BG""]L>RI;JLD%YF>NH
M;Y.@VQWY;P<8]AN&_9,,]^C,F,E@3OVXK J$WZAYPX5C?PE6$4%XPD0P8_B2
MDUEQH5WE?*4J@29=#W&O:$0M[D>8#QKF@Y/,8S1$G%DBP4Q3PC]*NZG*$W&,
MFKNB_[AK%Z,KH(Y"U<P$3'-52'O(UFC/UF#0:T6JJK%H+YI1\+/0?24T;$/=
M= ;OA>;[0M>=F\/>O6XLOCYI,5D)_X>'A\U]PS,]_*X[GT.#RJ:5I!0@M%?P
MHBP3AV(SW//ZQV@O- >$]D(3[PN%>]7HMUZN'/6JG#$,)"YSJJ[=G#9CS+1\
MO7\ZOPMNXVH:^0%3S48/3)-## A<$F2W<TV,=#5O5!NKUN7[N%"67MMRF=&(
MAMH)T/>EHC>RWK@+FJ%O\B]02P,$%     @ TX%D4AG1VE%Q!0  RA8  !D
M  !X;"]W;W)K<VAE971S+W-H965T-C8N>&ULK5C;;N,V$/T5PFB!+.#$$GU-
MX!A(["RZ0"Y&+LU#T0=:IBUB*=%+4KX4_?B2E"S)*XIVLGVQ=9D9SIDA>8XX
MW##^78082["-:"RN&Z&4JZM62P0ACI"X8"L<JS<+QB,DU2U?ML2*8S0W3A%M
M0<_KM2)$XL9H:)Y-^6C($DE)C*<<B"2*$-_=8LHVUPV_L7_P3):AU ]:H^$*
M+?$+EF^K*5=WK3S*G$0X%H3%@./%=>/&OYK GG8P%G\2O!&E:Z"AS!C[KF^^
MS:\;GLX(4QQ('0*IOS4>8TIU))7'CRQH(Q]3.Y:O]]&_&O *S P)/&;TG<QE
M>-T8-, <+U!"Y3/;_($S0%T=+V!4F%^PR6R]!@@2(5F4.:L,(A*G_VB;%:+D
M /T:!Y@YP%,=VIE#^U2'3N;0,95)H9@Z3)!$HR%G&\"UM8JF+TPQC;>"3V+=
M]Q?)U5NB_.3HD4D,? C.P3.6A&/54@FF%,4"G$VP1(0*\(JW,D'TR[ EU8C:
MKQ5DT6_3Z+ FN@K\P&(9"G 7S_'\,$!+I9KG"_?YWD)GQ D.+D#;;P+H0>_M
M90+.?K/E-3XYBG]9'V5R>I2!-<H!Q';>DK8)VZD-N\"<XSD8LT@M;X', M$]
M 3="8"EL?4A#=DU(O=;7HT[?[WN>-VRMRW6IVG7]KE>V.\BYD^?<<>;\T^0!
M=UN=.;9EVJEDX/<\KYJIQ0Y:["95NTNO'E W!]0]U@3U1/<@EIS,DJ('?SW@
M:(;YWXY.]_)!>LY!=(-1O ,/2 8AB9=@BGF@:J@V7*"&^TJXD.!.[US[-X M
MP%VTHFR'\4%NUDGA'KWK77C>[PX8_1Q&_]=AO)#MIT",W6/;0*3SXN-^!^ '
M.?B!,Y 52+D"BIO!>TB"$.SK]$XH38L%D%3E6<C=WL'61??X@QK\8[=;KZYL
M'W8[J-IE7K7+3RZOQT2O+CU%OL5K+*394YY6M7,\':=76OZP;5_ZOE=PHN?,
M;IKIFE/7NU]B6]\9N4#WR.+S8(^>\1W8E^06Q^HJ(V$KY?I5R#6(89$7=.9U
M3]",4")W36L>3?#*)*+6;.")^_D)AH?)%WSINPGS)@B2**%(JJR?9*CJJU<:
MQZ%NXQJKB12P"(.S>R;$ER9XBSD.V#(F_RC[1R6M;P(E;SA!%&@++)KFJ>K1
M*]I:(;<K#? '5LC'#0\A%W3KN_G6WJ1R(?9OGF:4+(V$L$+I5#+L=:U0+(8=
M%Y2":/W3F/802DGN*%P12V+9U")2T\LM4B\#J[C(QBJGV;FTXK$8.EM3<+KO
MIE4['CVCU!Y/V)P$^:LQ4\1X-E9:C\@OKC76JRR="IZC)A.GR2'8@OE]-XW6
MS$.A/B/3+1N\";W-(QKH>6FZ5YF8:L\A(M M!L]J[EHKX$X#7G@=*PD>]1NT
M773F%RK =Q/C)PI1.R6:1CX'>A7?LWAY+C&/3&7TGJ24=L)C</R+X$C"_3K=
M<-2OZU0 ?B$!?+<&T SX0WU7D@512$M?$"]HK>HC3J9?6! [=!/[24KU%<?@
M-62)0/$<3!BEB'] <Q_)X*CNA(66@&XM\;18D,"074E#_;+:S 8]H.GZ;1$6
M"@.Z%<:+.>JQ%_)_R!I6MO-N?=*%LH!N9?&Q*0K^S>1'L6KWNHI@<=),+@0
M/"H +(<$)1DWID@(DW=3:\T@4=::0VM)!E89OM.W42>L?G%WH8,Z82$%H%L*
M?++<!;QL.SRIU 6APZ.$_O'S&%@EVYIJ5@WMU6R5#ODBS)?FL%0 PYOI^5G^
M-#^0O3''D#\]O_6O)NFQ:A$F/>5]0'Q)%%51O% AO8N^RHJG!Z?IC60K<Y0X
M8U*RR%R&&,TQUP;J_8(QN;_1 ^3'UZ/_ %!+ P04    " #3@612:N/R8"$'
M  #E(@  &0   'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6S=6FUOVS80_BN$
MT0()X-HBY;<$20 G<;< 2^/EK1B*?F!L.B8JB2Y)Y678C]^1DBW9EBBM:=IB
M7Q*+NCO=/3S>/:1T\"CD%S5G3*.G,(C486.N]6*_W5:3.0NI:HD%B^#.3,B0
M:KB4]VVUD(Q.K5(8M(GG]=HAY5'CZ,".C>71@8AUP",VEDC%84CE\S$+Q.-A
M S>6 Y?\?J[-0/OH8$'OV173-XNQA*OVRLJ4ARQ27$1(LMEA8XCW1_[ *%B)
M6\X>5>XW,J'<"?'%7)Q-#QN>\8@%;**-"0K_'M@)"P)C"?SXFAIMK)YI%/._
ME];?V^ AF#NJV(D(/O*IGA\V!@TT93,:!_I2//[.TH"ZQMY$!,K^18^IK-=
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
M .[/A-#+"_. U9<M1_\"4$L#!!0    ( -.!9%(&>6T:M (  .H'   9
M>&PO=V]R:W-H965T<R]S:&5E=#8X+GAM;*U5RVZC,!3]%0MUT4IM 9.0M$J0
MFM!Y+#JJFNG,8C0+!VZ"56-G;*?I_/W8AC"4/)1%-^#'/<?W',.]HXV0+ZH
MT.BM9%R-O4+KU:WOJZR DJAKL0)N=A9"ED2;J5SZ:B6!Y Y4,A\'0>R7A'(O
M&;FU1YF,Q%HSRN%1(K4N2R+_3H")S=@+O>W"$UT6VB[XR6A%EC #_;QZE&;F
M-RPY+8$K*CB2L!A[=^%M.K#Q+N 'A8UJC9%5,A?BQ4Z^YF,OL D!@TQ;!F)>
MKS %QBR12>-/S>DU1UI@>[QE_^2T&RUSHF JV$^:ZV+L#3V4PX*LF7X2FR]0
MZ^E;ODPPY9YH4\<&'LK62HNR!IL,2LJK-WFK?6@!PO@  -< W 7T#@"B&A"=
M"NC5@)YSII+B?$B))LE(B@V2-MJPV8$STZ&-?,KMM<^T-+O4X'3R36@((W2%
M9@61<&4MS-%4E.:S4L3=S)&M^S<[!G2>@B:4J0L3_#Q+T?G9!3I#E*/OA5@K
MPG,U\K5)UA[I9W5BDRHQ?""Q$*,'P76AT#W/(7]/X!N5C52\E3K!1QE3R*Y1
M%%XB'.!@3T+3D^'AS1YX>CI\>$1-U%Q<Y/AZ!_C:EY*U+P6J2]GG>,78=XRV
M'KPF43 TR;RV7=@-"@?!S?N@=#<(#\,FYIV@7B.H=U305"B-Q +-" .%?CU
M.0?Y^XA3_8:X_^%.58QQ2]\0XXY1NS'1,.KXM!L3XOTVQ8V:^+@:4R(I7UZB
MS\!!$H;,[X7N<E,:J-*2V"JZ_2]/<G'0G#OX<!<'NU\)CN..C;M!880[0>D>
MIOBF8Z3?JH(ER*7K)LHDN^:ZJA+-:M.P[ER=[JQ/3".K^LY_FJH+/A"YI%PA
M!@M#&5P/3$:RZBS51(N5J[5SH4WE=L/"-&.0-L#L+X2IM_7$'M"T]^0?4$L#
M!!0    ( -.!9%)<EZMD)P0  ,H.   9    >&PO=V]R:W-H965T<R]S:&5E
M=#8Y+GAM;,U7VV[C-A#]%<+H @F06#=?4]N X[38/J0(XLWV(=@'6AI;1"C2
M)6E[#?3C.Z1D^:Y<B@!]L<419WC.'%*<Z:VD>M$I@"$_,RYTOY8:,[_Q/!VG
MD%%=EW,0^&8J548-#M7,TW,%-'%.&?="WV]Y&66B-N@YVX,:].3"<";@01&]
MR#*JUK? Y:I?"VH;PR.;I<8:O$%O3F<P!O,T?U X\LHH"<M :"8%43#MUX;!
MS2AH6@<WXSN#E=YY)I;*1,H7._@CZ==\BP@XQ,:&H/BWA!%P;B,ACK^+H+5R
M3>NX^[R)_KLCCV0F5,-(\K]88M)^K5,C"4SI@IM'N?H*!2$',)9<NU^R*N;Z
M-1(OM)%9X8P(,B;R?_JS2,1;',+"(3QP"*(S#E'A$#FB.3)'ZXX:.N@IN2+*
MSL9H]L'EQGDC&R:LC&.C\"U#/S/X4QH@042NR3BE"JYM2A(RDAGN$TU=IJ_)
MX_B)4)&0A_&0#&W>F5F3BSLPE'%]:2> -HK%!EW'1L8OY$DPHW,?4&ZSB1B*
M=\,558DFS_>034#]Z'D&>5@T7EQ@OLTQAV<P!R&YE\*DFOPF$DCV WB8@#(+
MX28+MV%EQ#N(ZR0*KDCHA_XOQ"/:)D/GOQ7QHS++D8O?.!/_22PQ0Y@=S*3>
MI%*3"R:*E2[)/^34:CGX/'C+!;?G<CGH-(.VW_.6.[-&U1">@Q\51!HED<8'
MB%R1E3LN:*=+4'C\R4Q184A"<7=-*5-D2?D"'.%$<DZ5)G-0.67+?9OS4_QS
M3.T=_F%4;[9*_GM4FB659B65?2D<7L3_5DF:1Y)TVYVH<2!)-8)J25HEC];[
M>7RV(JUC15KU5G!:D7;)I/V14Q+;;P=_AS;M(VVNHW8S/-"F&DNU-IV24>>_
M,/ILE3KO.3?=DE/W'?NMX'<17KY9GNZQ/(UNJW/X.:M&@?I</8=5&@7^]@KT
M/\[H VDOECN?]YS@*ZA>8;=SP0>?>?<4T7?E"L)NLWUXG%Y!47V>@G#+)OP?
M7D %J#U%F_7.F9,4V+)@W[*]7X/J"_8H3P6 :J]O*1"QL.44D=-<WX3IF$M;
MS"%EDS)-#)UP($B14(,60(.:8:/ 80G<^@6^_Z5>I=+V:@U>N=D.]V[!HMH+
MZW*':_<88OUY3U6<EM79KVX*5O\+RG<XQS++Y&9'XQ2DN *DRK1>8)@5Q8R
M 84E- XG:Y)AG<_F?,W$;+LHVBF9TS7V.W9[Q"",W4LV-U'KRQ7)JV,IG,=\
M6]D697,L1<)LS8P[,TX9YC4YF4]OIU[/ $6P;0Q>"W(A3'[QE]:R51JZ!N'
M?FM;J%/V\&9T:OXPB- A.AFI@6\:)]\T-WV:MP6;=WDHS8PA6PY3!.[7VRBP
MRANG?&#DW/4>$VFPDW&/*3:;H.P$?#^5V'\4 [M V;X._@502P,$%     @
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
M(F(K8EIF&XUBD7!=Y:-7LAY[8'Z-:;W"M%ZC:2, '%KU%Z*I1/>2<!4SE0X
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
M#.X%DDU5$?%O#B7?SAS?>9MXH)M"F0DWF=9D TM03_6]T)';9\EI!4Q2SI"
M]<RY\:_3R. MX#>%K=P9(^-DQ?FS"6[SF>,905!"IDP&HC\OL("R-(FTC+]=
M3J??TA!WQV_9OUGOVLN*2%CP\@_-53%S+AV4PYHTI7K@V^_0^;$",UY*^XNV
M'=9S4-9(Q:N.K!54E+5?\MJ=PP[!CP\0<$? 0T)X@!!TA."SA+ CA/9D6BOV
M'%*B2#(5?(N$0>ML9F /T[*U?<K,M2^5T*M4\U3RDRM ?HS.T2W+> 7HD;R"
M? ]/?W IS]!:\ HM.%.4-91MT*\:!#$7)]%I"HK04H/.T=,R1:<G9^@$488>
M"]Y(PG(Y=956:O9SLT[5O%6%#ZCR,;K3FQ42?64YY!\3N-IB[Q._^9SCHQE3
MR"Y0X']!V,/>B*#%I^G^U0@]_3S]\HB;H+^UP.8+#^1[8E1!CI:**!@]WI8>
M6;JI_)<$AY-8;_VRZWD?%6 <AA]1Z3[*C[$WZ5$?'(2]@_"H UVTNB39F/:6
M&._L=QG' ^7[F.!J@$E'\D3!N.JH5QT=5=T5Q0ITOP7]'[>1,A4S9B3:OX0H
M#@;'N]A'!3@.O8&9?90_\6)O8,?=:005B(UMJ!)EO&&JK95^MN_9-[95#>;G
MNI>WK?<]3?L0W!&QH;KL2UCKE-[%1&L2;7-M \5KVVY67.GF98>%?H] &(!>
M7W/=<KK ;-"_<,E_4$L#!!0    ( -.!9%+B2JYK90,  )<+   9    >&PO
M=V]R:W-H965T<R]S:&5E=#<W+GAM;)U677/:.A#]*QI/'Y*92VSY"[L#S#30
M3OO0>S,E[7U6\ *>VA*51$C_?5>RXQ#+,#0O8,GGK,Y9KZ2='(3\J;8 FCS5
M%5=3;ZOU[KWOJ]46:J9NQ XXOED+63.-0[GQU4X"*RRIKOPP"%*_9B7W9A,[
M=R=G$['75<GA3A*UKVLF?]]")0Y3CWK/$]_*S5:;"7\VV;$-+$%_W]U)'/E=
ME**L@:M2<")A/?4^T/<+:@D6\:.$@SIZ)L;*@Q _S>!+,?4"HP@J6&D3@N'?
M(\RAJDPDU/&K#>IU:QKB\?-S]$_6/)IY8 KFHOJ_+/1VZF4>*6#-]I7^)@Z?
MH364F'@K42G[2PXM-O#(:J^TJ%LR*JA+WORSIS811P2:GB"$+2'L$^(3A*@E
M1)<2XI80V\PT5FP>%DRSV42* Y$&C=',@TVF9:/]DIOOOM02WY;(T[-_A09"
M4S(B7_A*U$#NV1,H'"Z;0B!B3>:BW@D.7"LS>L&1CT]8?@H(EA^"N"[YON0;
M\M\.)#-?59&K!6A65NH:(WY?+LC5NVORCI2<W&_%7C%>J(FOT881XZ]:R;>-
MY/"$9!J2K[C85I&/O(#B=0 ?_7=)")^3<!N>C;B U0V)Z#\D#,)@0-#\8CK-
M!^B+R^G9&3=1]TDC&R\^$>\3%)C_:BBQ#3&Q1',B/,[R!)=\//;J8N@X?HU9
MN)@1I>,.]$IVW,F.S\I>:J9A2'1#2X\%17'84^V"1C3MJ78Q>3ZL.>DT)^=3
M+20>+'Q(=>(L%L913[2+B:.\)]K%1'DRK#KM5*=G5=\+S2H\7*3$/8V;T>YG
MC?L9FOT\9"=U[22.'Q>4Y..>'Q<3C4]4SKCS,WYKP8\',IP%/=DN*')UNZ!1
MF"?QL/*L4YZ]K>8S=[4HZ]7SW 4E*>W)'@B4!2?RG7>J\[=6?>[FNY?(N0L9
MT7ZR70R-PF'1-'BYZ8(+RAY[ L#"+P;JGEP] (=UJ:\'+Z7 ]1;$O7S/AU"T
MCUH,H$91&IXXC>C194XOL/C7SJASG*=)%O>=N:AX'&5]9RYJ%(5)_^/Y1QU+
M#7)C.S]%5F+/=7-O=[-==_G!]E2]^5O3==I.Z"5,T[)^97)38@M2P1I#!C=C
MU"2;+K 9:+&S?=&#T-AEV<<M=LX@#0#?KP7V1NW +-#UXK,_4$L#!!0    (
M -.!9%)%!RI<_@,  -$-   9    >&PO=V]R:W-H965T<R]S:&5E=#<X+GAM
M;(V76X^;.A#'OXH5M=*NU 0PEY JB=0LK4X?VK/:[>79 1.L@IUC.YOMMS^V
M80D+ANQ+@N$_X_EY?!FOSXS_$07&$CQ7)16;62'E\:/CB+3 %1(+=L14?<D9
MKY!437YPQ)%CE!FCJG2@ZT9.A0B=;=?FW3W?KME)EH3B>P[$J:H0_[O#)3MO
M9M[LY<4#.112OW"VZR,ZX$<L?Q[ON6HYK9>,5)@*PBC@.-_,/GD?$\_7!D;Q
MB^"SZ#P#C;)G[(]N?,TV,U='A$N<2NT"J;\G?(?+4GM2<?S7.)VU?6K#[O.+
M]R\&7L'LD<!WK/Q-,EEL9O$,9#A'IU(^L/,_N $*M;^4E<+\@G.C=6<@/0G)
MJL9815 16O^CYV8@.@9>-&( &P/8-PA&#/S&P'^K0= 8!&9D:A0S#@F2:+OF
M[ RX5BMO^L$,IK%6^(3JO#]*KKX292>WWYG$P(O ''RE*:LP^(&>L5#-SWF.
M34XZ'\ #4NH'G#*:DI(@D[F;!$M$2G&KC'X^)N#FW2UX!P@%/PIV$HAF8NU(
M%:GNSTF;J'9U5' D*@^";XS*0H#/-,/9:P>.0FPYX0OG#DYZ3'"Z +[W 4 7
MNI: [MYL[JTLYLG;S>,)&K_-FF_\!2/^FI1(E1+\K+8 @0&2(,<9YJ@$0B)Y
MDHS_!5SERS;ZM??0>-<[P],V]&-_[3QU1V0HBN(P>"U*AB(_['AZ11>T=,$D
MW:/4T^P%[&:/*<Z)O/T J-H'6=YRDLXHF-EJ0ZV[BCH!KL(^Z5#CP<CKD0Y%
M<ZB3:2,-6])PDO1+0Z)6B<D:[C*E'&=$6E=/.(C%[2%=521#Q7QIIXE:FFB2
MYJY ]* 1P!,J3_7N@$IULB":6J=A- S!BWOC?F<1^6'4GX<6E4KA2'J6+=!R
M$DAO>6="LUQ1  4C"L3Q7!\S&5!ITO/34-K8EE=3=%61#!5S/UK9F>*6*9YD
MVB%^4.4 .)YX6B@2H%LV@/@JP%5%,E3, PA'LK)J"5:3!-^9/A-.ZG#:E^TV
M85TFJT'W0;#L00PU<]B?7!8_<&2M>.[EX'6GUS[CJBBA9H\&&5$;&,=4$E1:
MCTMW$,(R[I%8-'[4(['Y&2/IE!#>),F_LL#<&K4W'-Q5U ][*/*683]NB\CU
M1@*'E\#A]/IFLG>,],\<*Q4<'HQA'/2QAJI@Z<=]KJ%J[L,0CI!=Z@-OND"X
M5&\=NK%JX(HO&"Z6[GM;S73%T L6H=4PN6)XXZT6GOO^UE8I.9U:M\+\8.X,
M0FW')RKK<K!]V]Y+/IEJO/=^I^\KIH:^N*DO.]_4%DFH "7.E4MWL53IX?7]
MH6Y(=C05]9Y)59^;QT+=N3#7 O4]9ZJJ;AJZ@_86M_T?4$L#!!0    ( -.!
M9%+"@806400  -T/   9    >&PO=V]R:W-H965T<R]S:&5E=#<Y+GAM;)V7
MVV[;.!"&7X4P>M$"223JK,(QD-I8;(!M-FC2[L5B+VAY;!.51)>B[>3M=W2(
MI(B4DMT;6Y1FAA]'FOG)^5G(G\4>0)&G+,V+Z]E>J<-GRRJ2/62LN!('R/')
M5LB,*1S*G54<)+!-Y92EEF/;@94QGL\6\^K>O5S,Q5&E/(=[28ICEC'Y_ 52
M<;Z>T=G+C6]\MU?E#6LQ/[ =/(#Z?KB7.++:*!N>05YPD1,)V^O9#?V\=.S2
MH;+XP>%<]*Y)N92U$#_+P>WF>F:71)!"HLH0#/].L(0T+2,AQZ\FZ*R=LW3L
M7[]$_ZU:/"YFS0I8BO0OOE'[ZUDT(QO8LF.JOHGS[] LR"_C)2(MJE]R;FSM
M&4F.A1)9XXP$&<_K?_;4)*+G0+T1!Z=Q<-[KX#8.;K70FJQ:UHHIMIA+<2:R
MM,9HY465F\H;5\/S\C4^*(E/.?JIQ9U00&A +LEMGH@,R"-[@@*'#_5[)6)+
MED<I(5>$Y1MR)_*D&:Y@"WBU*5W(35& *BJ3/SA;\Y0KCG$^KD QGA:?,.+W
MAQ7Y^.$3^4!X3A[WXEB@=3&W%"ZCA+&2!OE+C>R,(*\@N2(NO2".[=@&]^6[
MW6G\VMW"Y+49=-H,.E4\;R3>39+((V8!LD,JG@'(&G+8<F5<61W*KT*5%79:
MN+[CSZU3G]]@9$=Q:_2*TFTIW4G*V_R$[TQ(?"DFKMHYZ$T9N@,JW81ZH1G*
M:Z&\2:A'R3: S2 !?F+K%"Y(#LJ$YVESQWXTX--MPB@R\_DMGS_)=X=M%!NF
M9(KG.Y**HB )D_(9N^>92?.WZVL8KN/2 :MNY+LQ-<,&+6PPG4RLP@3+D:NW
M(0-M?B>(XP&D;N33WE?Q"C)L(<-)R#_5'J2)*-33%@V!=!O?'BF+J.6))GG:
M'J8P>ZSJ81=D)_%-FR CO03L*!R6K\$*.4=*)6Y!XTG0'RP]LEKX4I1>EB=@
M(HRUN2\#QQF6BLF*.H&9D-J=E-C_/9DC%=V$ZC-X0:^?-)U<MXKB<*10:$_S
MZ"3H4N1*X@;B34BJ)XJZ03"D-)F%]DBIT$Y8Z+2RW,NR^:CG2E7AUY$?</]D
M!G4,!"B/PPHRVME^.-(G::<N]"UY42S?<>SA34Z-E+J$7#JAJ[UTD]GHU]EI
M#9T6FWL)!\8QD4^X!2[,,DAU$;F,M#YDLO*CD0*GG=C0:;5Y%(JEY1:T*Z*T
MVTH9<74=*3\\9R@W1CO7CKT1Y$YRZ+3FE +9 O-Z _D>;EU:\'-U0V_(;;#S
MT' $NQ,A.JU"*QUY!%27' 3U(BW!!CO/"?P1T$Z=Z+0\_=_\ZA)DSJ_!;B*_
MG5;1:;&J5/[E2/#W5\C6(/^9VFIW$N.\4V)ZR7AIXG@K/6ZJ9Z0F&&]%S33]
M/3:UAXW(9.0Y@^18O;-7>?#]RN2.YP5)88M>]E6([K(^2]8#)0[5<6PM%![N
MJLL]GK]!E@;X?"OP2-8,RA->>Z)?_ M02P,$%     @ TX%D4@'"D9FD @
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
M:+UB4AW4B\<8: 1<"ZCO:Z:.U]6+GJ"^SIG^!U!+ P04    " #3@612LVL
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
M%XP"LLU#N53TQ52S5R4V "B,UJ TC8?(;T6*)=1Z>YWJ=%SS[ 0U_]M]SD"
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
M5.8/>H2@Q_F#XA)E7!(D3; FT#HBUY' ZXA@1P*Q(Y(="<R.B'8D4#LBVY'
M[8AP1P*Y(](=">R.B'<DT%M0;R'06U!O(=!;)@_;!'H+ZBT$>@OJ+01Z"^HM
M!'H+ZBT$>@OJ+01Z"^HM!'H+ZBT$>BOJK01Z*^JM!'HKZJT$>NOD90F!WHIZ
M*X'>BGHK@=Z*>BN!WHIZ*X'>BGHK@=Z*>BN!W@GU3@1Z)]0[$>B=4.]$H'="
MO1.!WFGRLIM [X1Z)P*]$^J="/1.J'<BT#NAWHE [X1Z)P*]#?4V KT-]38"
MO0WU-@*]#?4V KT-]38"O6WRL9) ;T.]C4!O0[V-0&]#O8U ;T.]C4!O1[V=
M0&]'O9U ;T>]G4!O1[V=0&]'O9U ;T>]G4!OG_QL0J"WH]Y.H+>CWDZ@MZ/>
M3J!W1KTS@=X9]<X$>F?4.Q/HG5'O3*!W1KTS@=X9]<X$>F?4.Q/HG2<_"Q+H
MG5'O3*!W1KTS@=X%]2X$>A?4NQ#H75#O0J!W0;T+@=X%]2X$>A?4NWRGWL/X
M>:C#K>=KC=?_3JK'R[GU=OGK\FOGY(:ZXASN*X;GOU!+ P04    " #3@612
MB6[,?BL"  "[,   $P   %M#;VYT96YT7U1Y<&5S72YX;6S-VTUNVS 0AN&K
M&-H&EBQ2I-0BSJ;MMLVB%V E.A:L/Y!,ZMR^E)P$:)$:"5R@[\:"37*^$0=X
M=K[^_CA9OSKVW>"WR3Z$Z6.6^7IO>^/3<;)#7-F-KC<A?G5WV63J@[FSF=AL
M=%:/0[!#6(>Y1G)S_=GNS'T75E^.\6??CL,V<;;SR>K3:>.<M4W,-'5M;4)<
MSQZ&YH^4]5-"&D\N>_R^G?Q5W)!DKR;,*W\/>#KW[<$ZUS9V=6M<^&KZN"L[
M=ID/CYWUZ?D2K_0X[G9M;9NQON_CD=1/SIK&[ZT-?9>>BEZ=3P[QANWI,[\X
M?RES+C#NO'7CY./$G'U_W/-(YM/K*1:R+K3G7_$E,9:^^/WL/.W&-F_,CM?[
M<W2'91X^6QZ7W_'O,WZI_\X^!*0/">FC@/2A('UH2!\EI(\*TL<'2!_YAM((
M1=2<0FI.,36GH)I35,TIK.845W,*K#E%5D&155!D%119!45609%54&05%%D%
M159!D5509)44625%5DF155)DE119)45629%54F25%%DE1=:"(FM!D;6@R%I0
M9"THLA8460N*K 5%UH(B:T&155%D5119%45619%54615%%D5159%D5519%44
M635%5DV155-DU119-45639%54V35%%DU159-D;6DR%I29"TILI8464N*K"5%
MUI(B:TF1M:3(6E)DK2BR5A19*XJL%476BB)K]3]E_3&.AW\<OSS3WK3#<WZV
M_&?AYA=02P$"% ,4    " #3@612!T%-8H$   "Q    $
M@ $     9&]C4')O<',O87!P+GAM;%!+ 0(4 Q0    ( -.!9%)F(\RI[@
M "L"   1              "  :\   !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4
M Q0    ( -.!9%*97)PC$ 8  )PG   3              "  <P!  !X;"]T
M:&5M92]T:&5M93$N>&UL4$L! A0#%     @ TX%D4@,"X9:P!0  JQ<  !@
M             ("!#0@  'AL+W=O<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4
M Q0    ( -.!9%+8?MS]]@0  ),3   8              " @?,-  !X;"]W
M;W)K<VAE971S+W-H965T,BYX;6Q02P$"% ,4    " #3@612BI/:*P0#  #Y
M"   &               @($?$P  >&PO=V]R:W-H965T<R]S:&5E=#,N>&UL
M4$L! A0#%     @ TX%D4JJFQ*=X!@  &QH  !@              ("!618
M 'AL+W=O<FMS:&5E=',O<VAE970T+GAM;%!+ 0(4 Q0    ( -.!9%*=7'$B
MY (  /T)   8              " @0<=  !X;"]W;W)K<VAE971S+W-H965T
M-2YX;6Q02P$"% ,4    " #3@612F(7G , &  #&)   &
M@($A(   >&PO=V]R:W-H965T<R]S:&5E=#8N>&UL4$L! A0#%     @ TX%D
M4A70F<)1"0  DRH  !@              ("!%R<  'AL+W=O<FMS:&5E=',O
M<VAE970W+GAM;%!+ 0(4 Q0    ( -.!9%*_#QD(?@0  %T)   8
M      " @9XP  !X;"]W;W)K<VAE971S+W-H965T."YX;6Q02P$"% ,4
M" #3@612TG>M\LT4  !].@  &               @(%2-0  >&PO=V]R:W-H
M965T<R]S:&5E=#DN>&UL4$L! A0#%     @ TX%D4J=]JJ'E!P  K!8  !D
M             ("!54H  'AL+W=O<FMS:&5E=',O<VAE970Q,"YX;6Q02P$"
M% ,4    " #3@612>YUIZE0"  #N!   &0              @(%Q4@  >&PO
M=V]R:W-H965T<R]S:&5E=#$Q+GAM;%!+ 0(4 Q0    ( -.!9%)E6Q_ I (
M %,%   9              " @?Q4  !X;"]W;W)K<VAE971S+W-H965T,3(N
M>&UL4$L! A0#%     @ TX%D4JQ&6?1R P  )0<  !D              ("!
MUU<  'AL+W=O<FMS:&5E=',O<VAE970Q,RYX;6Q02P$"% ,4    " #3@612
M/-=I.>@#  "8"   &0              @(& 6P  >&PO=V]R:W-H965T<R]S
M:&5E=#$T+GAM;%!+ 0(4 Q0    ( -.!9%+Z<CGI2@4  *X+   9
M      " @9]?  !X;"]W;W)K<VAE971S+W-H965T,34N>&UL4$L! A0#%
M  @ TX%D4A&(MH]U!@  V@\  !D              ("!(&4  'AL+W=O<FMS
M:&5E=',O<VAE970Q-BYX;6Q02P$"% ,4    " #3@612*=K(X$T%   D#
M&0              @(',:P  >&PO=V]R:W-H965T<R]S:&5E=#$W+GAM;%!+
M 0(4 Q0    ( -.!9%(N;H59> 0  $@*   9              " @5!Q  !X
M;"]W;W)K<VAE971S+W-H965T,3@N>&UL4$L! A0#%     @ TX%D4L[5<[UT
M P  _P<  !D              ("!_W4  'AL+W=O<FMS:&5E=',O<VAE970Q
M.2YX;6Q02P$"% ,4    " #3@612:\P>SAP%  !8#   &0
M@(&J>0  >&PO=V]R:W-H965T<R]S:&5E=#(P+GAM;%!+ 0(4 Q0    ( -.!
M9%*A6-BA! 8  "L-   9              " @?U^  !X;"]W;W)K<VAE971S
M+W-H965T,C$N>&UL4$L! A0#%     @ TX%D4A7<3#P=!0  U L  !D
M         ("!.(4  'AL+W=O<FMS:&5E=',O<VAE970R,BYX;6Q02P$"% ,4
M    " #3@612!KU<BI4'  !U$@  &0              @(&,B@  >&PO=V]R
M:W-H965T<R]S:&5E=#(S+GAM;%!+ 0(4 Q0    ( -.!9%([R?6'Q00  *8+
M   9              " @5B2  !X;"]W;W)K<VAE971S+W-H965T,C0N>&UL
M4$L! A0#%     @ TX%D4DO^?;1) @  \@0  !D              ("!5)<
M 'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6Q02P$"% ,4    " #3@612>(]F
MBS0#  !.!P  &0              @('4F0  >&PO=V]R:W-H965T<R]S:&5E
M=#(V+GAM;%!+ 0(4 Q0    ( -.!9%(O&WNKJ18  $])   9
M  " @3^=  !X;"]W;W)K<VAE971S+W-H965T,C<N>&UL4$L! A0#%     @
MTX%D4G[Y#WY_ P  XP<  !D              ("!'[0  'AL+W=O<FMS:&5E
M=',O<VAE970R."YX;6Q02P$"% ,4    " #3@612?0^EBHD$   ,"P  &0
M            @('5MP  >&PO=V]R:W-H965T<R]S:&5E=#(Y+GAM;%!+ 0(4
M Q0    ( -.!9%(=DV9W@@(  "4%   9              " @96\  !X;"]W
M;W)K<VAE971S+W-H965T,S N>&UL4$L! A0#%     @ TX%D4I#VV7W: @
MV@4  !D              ("!3K\  'AL+W=O<FMS:&5E=',O<VAE970S,2YX
M;6Q02P$"% ,4    " #3@612DY=9<7$#  "?"   &0              @(%?
MP@  >&PO=V]R:W-H965T<R]S:&5E=#,R+GAM;%!+ 0(4 Q0    ( -.!9%)-
M$@=YH@(  ($%   9              " @0?&  !X;"]W;W)K<VAE971S+W-H
M965T,S,N>&UL4$L! A0#%     @ TX%D4D23X]@%!0  HPT  !D
M     ("!X,@  'AL+W=O<FMS:&5E=',O<VAE970S-"YX;6Q02P$"% ,4
M" #3@612Y7+JV+0"   R!@  &0              @($<S@  >&PO=V]R:W-H
M965T<R]S:&5E=#,U+GAM;%!+ 0(4 Q0    ( -.!9%*TY[*11 ,  &D'   9
M              " @0?1  !X;"]W;W)K<VAE971S+W-H965T,S8N>&UL4$L!
M A0#%     @ TX%D4CA0-\'& @  ? 8  !D              ("!@M0  'AL
M+W=O<FMS:&5E=',O<VAE970S-RYX;6Q02P$"% ,4    " #3@612.BNZ$B(&
M  #/#P  &0              @(%_UP  >&PO=V]R:W-H965T<R]S:&5E=#,X
M+GAM;%!+ 0(4 Q0    ( -.!9%+%*8"B7P0  (4+   9              "
M@=C=  !X;"]W;W)K<VAE971S+W-H965T,SDN>&UL4$L! A0#%     @ TX%D
M4F9R6<+W @  \08  !D              ("!;N(  'AL+W=O<FMS:&5E=',O
M<VAE970T,"YX;6Q02P$"% ,4    " #3@6128E;1S=D!  #W P  &0
M        @(&<Y0  >&PO=V]R:W-H965T<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0
M   ( -.!9%*).YJCO04  '49   9              " @:SG  !X;"]W;W)K
M<VAE971S+W-H965T-#(N>&UL4$L! A0#%     @ TX%D4I76O1Y_ P  6 L
M !D              ("!H.T  'AL+W=O<FMS:&5E=',O<VAE970T,RYX;6Q0
M2P$"% ,4    " #3@612.XJ.PUX$  !8#0  &0              @(%6\0
M>&PO=V]R:W-H965T<R]S:&5E=#0T+GAM;%!+ 0(4 Q0    ( -.!9%(-04B,
M- 0  .0/   9              " @>OU  !X;"]W;W)K<VAE971S+W-H965T
M-#4N>&UL4$L! A0#%     @ TX%D4O9_%C^/!0  )!@  !D
M ("!5OH  'AL+W=O<FMS:&5E=',O<VAE970T-BYX;6Q02P$"% ,4    " #3
M@612ML-E&\H"  !)"0  &0              @($<  $ >&PO=V]R:W-H965T
M<R]S:&5E=#0W+GAM;%!+ 0(4 Q0    ( -.!9%)QMOP?O (  (8'   9
M          " @1T# 0!X;"]W;W)K<VAE971S+W-H965T-#@N>&UL4$L! A0#
M%     @ TX%D4BX9%0QO @  R04  !D              ("!$ 8! 'AL+W=O
M<FMS:&5E=',O<VAE970T.2YX;6Q02P$"% ,4    " #3@612\="'@W("  "'
M!@  &0              @(&V" $ >&PO=V]R:W-H965T<R]S:&5E=#4P+GAM
M;%!+ 0(4 Q0    ( -.!9%*$+;6G7@,  -P+   9              " @5\+
M 0!X;"]W;W)K<VAE971S+W-H965T-3$N>&UL4$L! A0#%     @ TX%D4EPW
MN$]B P  R0L  !D              ("!] X! 'AL+W=O<FMS:&5E=',O<VAE
M970U,BYX;6Q02P$"% ,4    " #3@612CG$JZE<"  !R!0  &0
M    @(&-$@$ >&PO=V]R:W-H965T<R]S:&5E=#4S+GAM;%!+ 0(4 Q0    (
M -.!9%)2LC9T2@,  &H,   9              " @1L5 0!X;"]W;W)K<VAE
M971S+W-H965T-30N>&UL4$L! A0#%     @ TX%D4H^=0))U @  V08  !D
M             ("!G!@! 'AL+W=O<FMS:&5E=',O<VAE970U-2YX;6Q02P$"
M% ,4    " #3@6127H7Q^WT%   4&0  &0              @(%(&P$ >&PO
M=V]R:W-H965T<R]S:&5E=#4V+GAM;%!+ 0(4 Q0    ( -.!9%*3?NM( @,
M /\(   9              " @?P@ 0!X;"]W;W)K<VAE971S+W-H965T-3<N
M>&UL4$L! A0#%     @ TX%D4J4[-<8  P  $ D  !D              ("!
M-20! 'AL+W=O<FMS:&5E=',O<VAE970U."YX;6Q02P$"% ,4    " #3@612
M0+QS5WL#   Y"@  &0              @(%L)P$ >&PO=V]R:W-H965T<R]S
M:&5E=#4Y+GAM;%!+ 0(4 Q0    ( -.!9%)#*&A2R (  .('   9
M      " @1XK 0!X;"]W;W)K<VAE971S+W-H965T-C N>&UL4$L! A0#%
M  @ TX%D4E5BK"EK!    Q,  !D              ("!'2X! 'AL+W=O<FMS
M:&5E=',O<VAE970V,2YX;6Q02P$"% ,4    " #3@612LB+/P7$"  !D!P
M&0              @(&_,@$ >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;%!+
M 0(4 Q0    ( -.!9%+,;P";\P(  .((   9              " @6<U 0!X
M;"]W;W)K<VAE971S+W-H965T-C,N>&UL4$L! A0#%     @ TX%D4I0/2Z#O
M @  .@H  !D              ("!D3@! 'AL+W=O<FMS:&5E=',O<VAE970V
M-"YX;6Q02P$"% ,4    " #3@612"\Q=@5L#    "@  &0
M@(&W.P$ >&PO=V]R:W-H965T<R]S:&5E=#8U+GAM;%!+ 0(4 Q0    ( -.!
M9%(9T=I1<04  ,H6   9              " @4D_ 0!X;"]W;W)K<VAE971S
M+W-H965T-C8N>&UL4$L! A0#%     @ TX%D4FKC\F A!P  Y2(  !D
M         ("!\40! 'AL+W=O<FMS:&5E=',O<VAE970V-RYX;6Q02P$"% ,4
M    " #3@612!GEM&K0"  #J!P  &0              @(%)3 $ >&PO=V]R
M:W-H965T<R]S:&5E=#8X+GAM;%!+ 0(4 Q0    ( -.!9%)<EZMD)P0  ,H.
M   9              " @31/ 0!X;"]W;W)K<VAE971S+W-H965T-CDN>&UL
M4$L! A0#%     @ TX%D4N922YG* P  1PL  !D              ("!DE,!
M 'AL+W=O<FMS:&5E=',O<VAE970W,"YX;6Q02P$"% ,4    " #3@612J85G
MM] $  "L$0  &0              @(&35P$ >&PO=V]R:W-H965T<R]S:&5E
M=#<Q+GAM;%!+ 0(4 Q0    ( -.!9%)/0EQ710(  $('   9
M  " @9I< 0!X;"]W;W)K<VAE971S+W-H965T-S(N>&UL4$L! A0#%     @
MTX%D4L*P3<2Z @  BP<  !D              ("!%E\! 'AL+W=O<FMS:&5E
M=',O<VAE970W,RYX;6Q02P$"% ,4    " #3@612F6F;7IX"  "3!P  &0
M            @($'8@$ >&PO=V]R:W-H965T<R]S:&5E=#<T+GAM;%!+ 0(4
M Q0    ( -.!9%+*A1NP7@0  " 4   9              " @=QD 0!X;"]W
M;W)K<VAE971S+W-H965T-S4N>&UL4$L! A0#%     @ TX%D4G6=K<F< @
M[08  !D              ("!<6D! 'AL+W=O<FMS:&5E=',O<VAE970W-BYX
M;6Q02P$"% ,4    " #3@612XDJN:V4#  "7"P  &0              @(%$
M; $ >&PO=V]R:W-H965T<R]S:&5E=#<W+GAM;%!+ 0(4 Q0    ( -.!9%)%
M!RI<_@,  -$-   9              " @>!O 0!X;"]W;W)K<VAE971S+W-H
M965T-S@N>&UL4$L! A0#%     @ TX%D4L*!A!91!   W0\  !D
M     ("!%70! 'AL+W=O<FMS:&5E=',O<VAE970W.2YX;6Q02P$"% ,4
M" #3@612 <*1F:0"  !-!P  &0              @(&=> $ >&PO=V]R:W-H
M965T<R]S:&5E=#@P+GAM;%!+ 0(4 Q0    ( -.!9%+;9=0?= (  /,%   9
M              " @7A[ 0!X;"]W;W)K<VAE971S+W-H965T.#$N>&UL4$L!
M A0#%     @ TX%D4B8'X?)-!   VA$  !D              ("!(WX! 'AL
M+W=O<FMS:&5E=',O<VAE970X,BYX;6Q02P$"% ,4    " #3@612LVL Y6H$
M   Q$0  &0              @(&G@@$ >&PO=V]R:W-H965T<R]S:&5E=#@S
M+GAM;%!+ 0(4 Q0    ( -.!9%)T;NMTB@(  !4'   9              "
M@4B' 0!X;"]W;W)K<VAE971S+W-H965T.#0N>&UL4$L! A0#%     @ TX%D
M4E*638"' P  '0P  !D              ("!"8H! 'AL+W=O<FMS:&5E=',O
M<VAE970X-2YX;6Q02P$"% ,4    " #3@612DNS8)4,"  !:"P  #0
M        @ ''C0$ >&PO<W1Y;&5S+GAM;%!+ 0(4 Q0    ( -.!9%*7BKL<
MP    !,"   +              "  360 0!?<F5L<R\N<F5L<U!+ 0(4 Q0
M   ( -.!9%)WL]_$,08  )PX   /              "  1Z1 0!X;"]W;W)K
M8F]O:RYX;6Q02P$"% ,4    " #3@612(!6^$(0"   F,@  &@
M    @ %\EP$ >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'-02P$"% ,4
M" #3@612B6[,?BL"  "[,   $P              @ $XF@$ 6T-O;G1E;G1?
@5'EP97-=+GAM;%!+!08     70!= ((9  "4G $    !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<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>102
<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>103
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.20.4</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>235</ContextCount>
  <ElementCount>508</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>76</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>8</UnitCount>
  <MyReports>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Consolidated Statements of Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income</Role>
      <ShortName>Consolidated Statements of Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Consolidated Statements of Stockholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity</Role>
      <ShortName>Consolidated Statements of Stockholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>007 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 1 - Organization</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-1-organization</Role>
      <ShortName>Note 1 - Organization</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 2 - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 3 - Business Combinations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations</Role>
      <ShortName>Note 3 - Business Combinations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 4 - Discontinued Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations</Role>
      <ShortName>Note 4 - Discontinued Operations</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 5 - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-5-inventories</Role>
      <ShortName>Note 5 - Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 6 - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment</Role>
      <ShortName>Note 6 - Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 7 - Goodwill and Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-</Role>
      <ShortName>Note 7 - Goodwill and Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 8 - Line of Credit and Long-term Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt</Role>
      <ShortName>Note 8 - Line of Credit and Long-term Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 9 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases</Role>
      <ShortName>Note 9 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 10 - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements</Role>
      <ShortName>Note 10 - Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities</Role>
      <ShortName>Note 11 - Derivative Instruments and Hedging Activities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 12 - Retirement Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans</Role>
      <ShortName>Note 12 - Retirement Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 13 - Share-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation</Role>
      <ShortName>Note 13 - Share-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 14 - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies</Role>
      <ShortName>Note 14 - Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 15 - Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue</Role>
      <ShortName>Note 15 - Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 16 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes</Role>
      <ShortName>Note 16 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss</Role>
      <ShortName>Note 17 - Accumulated Other Comprehensive Loss</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 18 - Restructuring</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-</Role>
      <ShortName>Note 18 - Restructuring</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>027 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>028 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies</ParentRole>
      <Position>27</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies</ParentRole>
      <Position>28</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 3 - Business Combinations (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables</Role>
      <ShortName>Note 3 - Business Combinations (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 5 - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables</Role>
      <ShortName>Note 5 - Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-5-inventories</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 6 - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables</Role>
      <ShortName>Note 6 - Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 7 - Goodwill and Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables</Role>
      <ShortName>Note 7 - Goodwill and Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables</Role>
      <ShortName>Note 8 - Line of Credit and Long-term Debt (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 9 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables</Role>
      <ShortName>Note 9 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-9-leases</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 10 - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables</Role>
      <ShortName>Note 10 - Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 13 - Share-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables</Role>
      <ShortName>Note 13 - Share-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 15 - Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables</Role>
      <ShortName>Note 15 - Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-15-revenue</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 16 - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables</Role>
      <ShortName>Note 16 - Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables</Role>
      <ShortName>Note 17 - Accumulated Other Comprehensive Loss (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>041 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 1 - Organization (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual</Role>
      <ShortName>Note 1 - Organization (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-1-organization</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>43</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details</Role>
      <ShortName>Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 3 - Business Combinations (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual</Role>
      <ShortName>Note 3 - Business Combinations (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details</Role>
      <ShortName>Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 3 - Business Combinations - Intangible Assets Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details</Role>
      <ShortName>Note 3 - Business Combinations - Intangible Assets Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>47</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 3 - Business Combinations - Pro Forma Summary (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details</Role>
      <ShortName>Note 3 - Business Combinations - Pro Forma Summary (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 4 - Discontinued Operations (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual</Role>
      <ShortName>Note 4 - Discontinued Operations (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 5 - Inventories - Components of Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details</Role>
      <ShortName>Note 5 - Inventories - Components of Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>50</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 6 - Property and Equipment (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual</Role>
      <ShortName>Note 6 - Property and Equipment (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 6 - Property and Equipment - Property, Plant and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details</Role>
      <ShortName>Note 6 - Property and Equipment - Property, Plant and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details</Role>
      <ShortName>Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details</Role>
      <ShortName>Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details</Role>
      <ShortName>Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual</Role>
      <ShortName>Note 8 - Line of Credit and Long-term Debt (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables</ParentRole>
      <Position>56</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details</Role>
      <ShortName>Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 9 - Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual</Role>
      <ShortName>Note 9 - Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables</ParentRole>
      <Position>58</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>060 - Disclosure - Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details</Role>
      <ShortName>Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>061 - Disclosure - Note 9 - Leases - Lease Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details</Role>
      <ShortName>Note 9 - Leases - Lease Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>062 - Disclosure - Note 9 - Leases - Future Maturities of Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details</Role>
      <ShortName>Note 9 - Leases - Future Maturities of Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>063 - Disclosure - Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details</Role>
      <ShortName>Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>064 - Disclosure - Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details</Role>
      <ShortName>Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>065 - Disclosure - Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details</Role>
      <ShortName>Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>066 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual</Role>
      <ShortName>Note 11 - Derivative Instruments and Hedging Activities (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>067 - Disclosure - Note 12 - Retirement Plans (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual</Role>
      <ShortName>Note 12 - Retirement Plans (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans</ParentRole>
      <Position>66</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>068 - Disclosure - Note 13 - Share-based Compensation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual</Role>
      <ShortName>Note 13 - Share-based Compensation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables</ParentRole>
      <Position>67</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>069 - Disclosure - Note13 - Share-based Compensation - Share-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details</Role>
      <ShortName>Note13 - Share-based Compensation - Share-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>070 - Disclosure - Note 13 - Share-based Compensation - RSU and PSA Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details</Role>
      <ShortName>Note 13 - Share-based Compensation - RSU and PSA Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>071 - Disclosure - Note 14 - Commitments and Contingencies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual</Role>
      <ShortName>Note 14 - Commitments and Contingencies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>072 - Disclosure - Note 15 - Revenue 1 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual</Role>
      <ShortName>Note 15 - Revenue 1 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>073 - Disclosure - Note 15 - Revenue 2 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual</Role>
      <ShortName>Note 15 - Revenue 2 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables</ParentRole>
      <Position>72</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>074 - Disclosure - Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details</Role>
      <ShortName>Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>075 - Disclosure - Note 15 - Revenue - Disaggregation of Revenue (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details</Role>
      <ShortName>Note 15 - Revenue - Disaggregation of Revenue (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>076 - Disclosure - Note 16 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual</Role>
      <ShortName>Note 16 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables</ParentRole>
      <Position>75</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>077 - Disclosure - Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details</Role>
      <ShortName>Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>078 - Disclosure - Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details</Role>
      <ShortName>Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>079 - Disclosure - Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details</Role>
      <ShortName>Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>080 - Disclosure - Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details</Role>
      <ShortName>Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>081 - Disclosure - Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details</Role>
      <ShortName>Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>082 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details</Role>
      <ShortName>Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>084 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details</Role>
      <ShortName>Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>085 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details</Role>
      <ShortName>Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>086 - Disclosure - Note 18 - Restructuring (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual</Role>
      <ShortName>Note 18 - Restructuring (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-</ParentRole>
      <Position>84</Position>
    </Report>
    <Report instance="nwpx20201231_10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>087 - Disclosure - Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" original="nwpx20201231_10k.htm">nwpx20201231_10k.htm</File>
    <File>ex_223767.htm</File>
    <File>ex_223768.htm</File>
    <File>ex_223769.htm</File>
    <File>ex_223770.htm</File>
    <File>ex_223771.htm</File>
    <File>ex_223772.htm</File>
    <File>nwpx-20201231.xsd</File>
    <File>nwpx-20201231_cal.xml</File>
    <File>nwpx-20201231_def.xml</File>
    <File>nwpx-20201231_lab.xml</File>
    <File>nwpx-20201231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>graph1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/us-gaap/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2020-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>106
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "instance": {
  "nwpx20201231_10k.htm": {
   "axisCustom": 0,
   "axisStandard": 36,
   "contextCount": 235,
   "dts": {
    "calculationLink": {
     "local": [
      "nwpx-20201231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "nwpx-20201231_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": [
      "nwpx20201231_10k.htm"
     ]
    },
    "labelLink": {
     "local": [
      "nwpx-20201231_lab.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/srt/2020/elts/srt-doc-2020-01-31.xml",
      "https://xbrl.sec.gov/dei/2019/dei-doc-2019-01-31.xml",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-doc-2020-01-31.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "nwpx-20201231_pre.xml"
     ]
    },
    "referenceLink": {
     "remote": [
      "http://xbrl.fasb.org/srt/2020/elts/srt-ref-2020-01-31.xml",
      "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": [
      "nwpx-20201231.xsd"
     ],
     "remote": [
      "https://xbrl.sec.gov/sic/2020/sic-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/nonNumeric-2009-12-16.xsd",
      "https://xbrl.sec.gov/exch/2020/exch-2020-01-31.xsd",
      "http://xbrl.sec.gov/naics/2011/naics-2011-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://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd",
      "http://www.xbrl.org/dtr/type/numeric-2009-12-16.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/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/stpr/2018/stpr-2018-01-31.xsd",
      "https://xbrl.sec.gov/currency/2020/currency-2020-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",
      "https://xbrl.sec.gov/dei/2019/dei-2019-01-31.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd",
      "http://xbrl.fasb.org/us-gaap/2020/elts/us-parts-codification-2020-01-31.xsd"
     ]
    }
   },
   "elementCount": 672,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2020-01-31": 42,
    "http://www.nwpipe.com/20201231": 16,
    "http://xbrl.sec.gov/dei/2019-01-31": 6,
    "total": 64
   },
   "keyCustom": 64,
   "keyStandard": 444,
   "memberCustom": 22,
   "memberStandard": 54,
   "nsprefix": "nwpx",
   "nsuri": "http://www.nwpipe.com/20201231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "p",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "000 - Document - Document And Entity Information",
     "role": "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information",
     "shortName": "Document And Entity Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "p",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "011 - Disclosure - Note 3 - Business Combinations",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
     "shortName": "Note 3 - Business Combinations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "012 - Disclosure - Note 4 - Discontinued Operations",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
     "shortName": "Note 4 - Discontinued Operations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "013 - Disclosure - Note 5 - Inventories",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
     "shortName": "Note 5 - Inventories",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "014 - Disclosure - Note 6 - Property and Equipment",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
     "shortName": "Note 6 - Property and Equipment",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "015 - Disclosure - Note 7 - Goodwill and Intangible Assets",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
     "shortName": "Note 7 - Goodwill and Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "016 - Disclosure - Note 8 - Line of Credit and Long-term Debt",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
     "shortName": "Note 8 - Line of Credit and Long-term Debt",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:LesseeLeaseDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "017 - Disclosure - Note 9 - Leases",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
     "shortName": "Note 9 - Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:LesseeLeaseDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "018 - Disclosure - Note 10 - Fair Value Measurements",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
     "shortName": "Note 10 - Fair Value Measurements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "019 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
     "shortName": "Note 11 - Derivative Instruments and Hedging Activities",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "020 - Disclosure - Note 12 - Retirement Plans",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
     "shortName": "Note 12 - Retirement Plans",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "001 - Statement - Consolidated Statements of Operations",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
     "shortName": "Consolidated Statements of Operations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:GrossProfit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "021 - Disclosure - Note 13 - Share-based Compensation",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
     "shortName": "Note 13 - Share-based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "022 - Disclosure - Note 14 - Commitments and Contingencies",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
     "shortName": "Note 14 - Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "023 - Disclosure - Note 15 - Revenue",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
     "shortName": "Note 15 - Revenue",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "024 - Disclosure - Note 16 - Income Taxes",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
     "shortName": "Note 16 - Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ComprehensiveIncomeNoteTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "025 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
     "shortName": "Note 17 - Accumulated Other Comprehensive Loss",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ComprehensiveIncomeNoteTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "026 - Disclosure - Note 18 - Restructuring",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
     "shortName": "Note 18 - Restructuring",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "027 - Disclosure - Schedule II - Valuation and Qualifying Accounts",
     "role": "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts",
     "shortName": "Schedule II - Valuation and Qualifying Accounts",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "028 - Disclosure - Significant Accounting Policies (Policies)",
     "role": "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies",
     "shortName": "Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "nwpx:AccruedLiabilitiesPolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "029 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
     "shortName": "Note 2 - Summary of Significant Accounting Policies (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "nwpx:AccruedLiabilitiesPolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "030 - Disclosure - Note 3 - Business Combinations (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
     "shortName": "Note 3 - Business Combinations (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-4",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "002 - Statement - Consolidated Statements of Comprehensive Income",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
     "shortName": "Consolidated Statements of Comprehensive Income",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "031 - Disclosure - Note 5 - Inventories (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
     "shortName": "Note 5 - Inventories (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "032 - Disclosure - Note 6 - Property and Equipment (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
     "shortName": "Note 6 - Property and Equipment (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "033 - Disclosure - Note 7 - Goodwill and Intangible Assets (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
     "shortName": "Note 7 - Goodwill and Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "034 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
     "shortName": "Note 8 - Line of Credit and Long-term Debt (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "035 - Disclosure - Note 9 - Leases (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
     "shortName": "Note 9 - Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "036 - Disclosure - Note 10 - Fair Value Measurements (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
     "shortName": "Note 10 - Fair Value Measurements (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "037 - Disclosure - Note 13 - Share-based Compensation (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
     "shortName": "Note 13 - Share-based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "038 - Disclosure - Note 15 - Revenue (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
     "shortName": "Note 15 - Revenue (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "039 - Disclosure - Note 16 - Income Taxes (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
     "shortName": "Note 16 - Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "040 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
     "shortName": "Note 17 - Accumulated Other Comprehensive Loss (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "003 - Statement - Consolidated Balance Sheets",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
     "shortName": "Consolidated Balance Sheets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "041 - Disclosure - Schedule II - Valuation and Qualifying Accounts (Tables)",
     "role": "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables",
     "shortName": "Schedule II - Valuation and Qualifying Accounts (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-31_2020-01-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "042 - Disclosure - Note 1 - Organization (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
     "shortName": "Note 1 - Organization (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "043 - Disclosure - Note 2 - Summary of Significant Accounting Policies (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
     "shortName": "Note 2 - Summary of Significant Accounting Policies (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "nwpx:WorkersCompensationInsurancePolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:WorkersCompensationLiabilityCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "nwpx:AccruedLiabilitiesPolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedBonusesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "044 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
     "shortName": "Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "nwpx:AccruedLiabilitiesPolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccruedBonusesCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-4",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "045 - Disclosure - Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
     "shortName": "Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "us-gaap:EarningsPerSharePolicyTextBlock",
       "us-gaap:SignificantAccountingPoliciesTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-31_2020-01-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "046 - Disclosure - Note 3 - Business Combinations (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
     "shortName": "Note 3 - Business Combinations (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": "0",
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionPercentageOfVotingInterestsAcquired",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "047 - Disclosure - Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
     "shortName": "Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "048 - Disclosure - Note 3 - Business Combinations - Intangible Assets Acquired (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
     "shortName": "Note 3 - Business Combinations - Intangible Assets Acquired (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-31_2020-01-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "049 - Disclosure - Note 3 - Business Combinations - Pro Forma Summary (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
     "shortName": "Note 3 - Business Combinations - Pro Forma Summary (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:BusinessAcquisitionProFormaInformationTextBlock",
       "us-gaap:BusinessCombinationDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "050 - Disclosure - Note 4 - Discontinued Operations (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual",
     "shortName": "Note 4 - Discontinued Operations (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-26_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis-AtchisonFacilityMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": null,
     "groupType": "statement",
     "isDefault": "false",
     "longName": "004 - Statement - Consolidated Balance Sheets (Parentheticals)",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals",
     "shortName": "Consolidated Balance Sheets (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": null
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "051 - Disclosure - Note 5 - Inventories - Components of Inventories (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details",
     "shortName": "Note 5 - Inventories - Components of Inventories (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock",
       "us-gaap:InventoryDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentNet",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "052 - Disclosure - Note 6 - Property and Equipment (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
     "shortName": "Note 6 - Property and Equipment (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2018-12-01_2018-12-31_PropertyPlantAndEquipmentByTypeAxis-MonterreyMexicoFacilityMember",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "053 - Disclosure - Note 6 - Property and Equipment - Property, Plant and Equipment (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details",
     "shortName": "Note 6 - Property and Equipment - Property, Plant and Equipment (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "054 - Disclosure - Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
     "shortName": "Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_BusinessAcquisitionAxis-GenevaPipeCompanyIncMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:GoodwillAcquiredDuringPeriod",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "055 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
     "shortName": "Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "056 - Disclosure - Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
     "shortName": "Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "057 - Disclosure - Note 8 - Line of Credit and Long-term Debt (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
     "shortName": "Note 8 - Line of Credit and Long-term Debt (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DebtDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "nwpx:InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebtCurrent",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "058 - Disclosure - Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
     "shortName": "Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31_DebtInstrumentAxis-TermLoanMember_LineOfCreditFacilityAxis-WellsFargoBankNAMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "059 - Disclosure - Note 9 - Leases (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
     "shortName": "Note 9 - Leases (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "060 - Disclosure - Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
     "shortName": "Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LesseeLeaseAssetsAndLiabilitiesTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "nwpx:LeaseRightOfUseAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "005 - Statement - Consolidated Statements of Stockholders' Equity",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
     "shortName": "Consolidated Statements of Stockholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-31_StatementEquityComponentsAxis-CommonStockMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:SharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "061 - Disclosure - Note 9 - Leases - Lease Cost (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details",
     "shortName": "Note 9 - Leases - Lease Cost (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:LeaseCostTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseRightOfUseAssetAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LesseeLiabilityMaturityTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "062 - Disclosure - Note 9 - Leases - Future Maturities of Lease Liabilities (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
     "shortName": "Note 9 - Leases - Future Maturities of Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LesseeLiabilityMaturityTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "063 - Disclosure - Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
     "shortName": "Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseInterestPaymentOnLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "064 - Disclosure - Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
     "shortName": "Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock",
       "nwpx:LesseeLeaseDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:FinanceLeaseInterestPaymentOnLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredCompensationPlanAssets",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "065 - Disclosure - Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
     "shortName": "Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-4",
      "lang": null,
      "name": "us-gaap:DerivativeLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrealizedLossOnForeignCurrencyDerivativesBeforeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "066 - Disclosure - Note 11 - Derivative Instruments and Hedging Activities (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual",
     "shortName": "Note 11 - Derivative Instruments and Hedging Activities (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_DerivativeInstrumentRiskAxis-ForeignExchangeForwardMember",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrealizedLossOnForeignCurrencyDerivativesBeforeTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "us-gaap:FairValueDisclosuresTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredCompensationPlanAssets",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "067 - Disclosure - Note 12 - Retirement Plans (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
     "shortName": "Note 12 - Retirement Plans (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-5",
      "lang": null,
      "name": "nwpx:RetirementPlanExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "068 - Disclosure - Note 13 - Share-based Compensation (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
     "shortName": "Note 13 - Share-based Compensation (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:CommonStockCapitalSharesReservedForFutureIssuance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "069 - Disclosure - Note13 - Share-based Compensation - Share-based Compensation Expense (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
     "shortName": "Note13 - Share-based Compensation - Share-based Compensation Expense (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "070 - Disclosure - Note 13 - Share-based Compensation - RSU and PSA Activity (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
     "shortName": "Note 13 - Share-based Compensation - RSU and PSA Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock",
       "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31_AwardTypeAxis-RestrictedStockUnitsAndPerformanceStockAwardsMember",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Share",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-4",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "007 - Statement - Consolidated Statements of Cash Flows",
     "role": "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
     "shortName": "Consolidated Statements of Cash Flows",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "nwpx:DepreciationAndFinanceLeaseRightOfUseAssetAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-5",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "071 - Disclosure - Note 14 - Commitments and Contingencies (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
     "shortName": "Note 14 - Commitments and Contingencies (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_NoncatastrophicEventAxis-FireMember",
      "decimals": "-5",
      "lang": null,
      "name": "nwpx:BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "072 - Disclosure - Note 15 - Revenue 1 (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
     "shortName": "Note 15 - Revenue 1 (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-5",
      "lang": null,
      "name": "nwpx:IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligationPercentage",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "073 - Disclosure - Note 15 - Revenue 2 (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual",
     "shortName": "Note 15 - Revenue 2 (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis-RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis.domain-2021-01-01",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueRemainingPerformanceObligationPercentage",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "074 - Disclosure - Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
     "shortName": "Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_StatementGeographicalAxis-US",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "075 - Disclosure - Note 15 - Revenue - Disaggregation of Revenue (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
     "shortName": "Note 15 - Revenue - Disaggregation of Revenue (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "us-gaap:RevenueFromContractWithCustomerTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_TimingOfTransferOfGoodOrServiceAxis-TransferredOverTimeMember",
      "decimals": "-4",
      "lang": null,
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "076 - Disclosure - Note 16 - Income Taxes (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
     "shortName": "Note 16 - Income Taxes (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "2",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "077 - Disclosure - Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
     "shortName": "Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "078 - Disclosure - Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
     "shortName": "Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "079 - Disclosure - Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
     "shortName": "Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "080 - Disclosure - Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
     "shortName": "Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "009 - Disclosure - Note 1 - Organization",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
     "shortName": "Note 1 - Organization",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31",
      "decimals": "-4",
      "first": true,
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "081 - Disclosure - Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
     "shortName": "Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-31",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "082 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
     "shortName": "Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquity",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "084 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
     "shortName": "Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_StatementEquityComponentsAxis-AccumulatedDefinedBenefitPlansAdjustmentMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OciBeforeReclassificationsNetOfTaxAttributableToParent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "085 - Disclosure - Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
     "shortName": "Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock",
       "us-gaap:ComprehensiveIncomeNoteTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis-ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "086 - Disclosure - Note 18 - Restructuring (Details Textual)",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual",
     "shortName": "Note 18 - Restructuring (Details Textual)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2018-01-01_2018-12-31_RestructuringCostAndReserveAxis-EmployeeSeveranceMember",
      "decimals": "-5",
      "lang": null,
      "name": "us-gaap:RestructuringCharges",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock",
       "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2019-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "087 - Disclosure - Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)",
     "role": "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
     "shortName": "Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "td",
       "tr",
       "tbody",
       "table",
       "nwpx:SummaryOfValuationAndQualifyingAccountsTableTextBlock",
       "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "i_2017-12-31_ValuationAllowancesAndReservesTypeAxis-AllowanceForCreditLossMember",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "010 - Disclosure - Note 2 - Summary of Significant Accounting Policies",
     "role": "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
     "shortName": "Note 2 - Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "body",
       "html"
      ],
      "baseRef": "nwpx20201231_10k.htm",
      "contextRef": "d_2020-01-01_2020-12-31",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 76,
   "tag": {
    "country_CA": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "CANADA"
       }
      }
     },
     "localname": "CA",
     "nsuri": "http://xbrl.sec.gov/country/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details"
     ],
     "xbrltype": "domainItemType"
    },
    "country_MX": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "MEXICO"
       }
      }
     },
     "localname": "MX",
     "nsuri": "http://xbrl.sec.gov/country/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "UNITED STATES"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details"
     ],
     "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"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "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"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r643"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "booleanItemType"
    },
    "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"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentInformationLineItems": {
     "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": "Document Information [Line Items]"
       }
      }
     },
     "localname": "DocumentInformationLineItems",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_DocumentInformationTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Container to support the formal attachment of each official or unofficial, public or private document as part of a submission package.",
        "label": "Document Information [Table]"
       }
      }
     },
     "localname": "DocumentInformationTable",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "xbrltype": "stringItemType"
    },
    "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"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r642"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r644"
     ],
     "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"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All the names of the entities being reported upon in a document. Any legal structure used to conduct activities or to hold assets. Some examples of such structures are corporations, partnerships, limited liability companies, grantor trusts, and other trusts. This item does not include business and geographical segments which are included in the geographical or business segments domains.",
        "label": "Entity [Domain]"
       }
      }
     },
     "localname": "EntityDomain",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r644"
     ],
     "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"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "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"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r645"
     ],
     "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"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r644"
     ],
     "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"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r644"
     ],
     "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"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r644"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r644"
     ],
     "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"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_LegalEntityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The set of legal entities associated with a report.",
        "label": "Legal Entity [Axis]"
       }
      }
     },
     "localname": "LegalEntityAxis",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r640"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r641"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2019-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-document-and-entity-information"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "nwpx_AccruedLiabilitiesPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information about accrued liabilities Policy.",
        "label": "Accrued Liabilities [Policy Text Block]"
       }
      }
     },
     "localname": "AccruedLiabilitiesPolicyTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_AccruedLiabilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value of liabilities incurred and payable as of the balance sheet date.",
        "label": "Accrued Liability [Member]"
       }
      }
     },
     "localname": "AccruedLiabilityMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tax expense (benefit) included in accumulated other comprehensive income for cash flow hedges.",
        "label": "nwpx_AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax",
        "terseLabel": "Unrealized gain (loss) on cash flow hedges, tax effect"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossCumulativeChangeInNetGainLossFromCashFlowHedgeEffectTax",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tax expense (benefit) included in accumulated other comprehensive income for defined benefit pension and other postretirement plans.",
        "label": "nwpx_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit",
        "terseLabel": "Pension liability adjustment, tax effect"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansTaxExpenseBenefit",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of unrecognized actuarial loss recognized in accumulated other comprehensive income (loss), net of tax.",
        "label": "nwpx_AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax",
        "terseLabel": "Accumulated Other Comprehensive Income (Loss), Unrecognized Net Actuarial Losses, Net of Tax"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossUnrecognizedNetActuarialLossesNetOfTax",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_AmeronWaterTransmissionGroupLLCMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the entity Ameron Water Transmission Group, LLC.",
        "label": "Ameron Water Transmission Group, LLC [Member]"
       }
      }
     },
     "localname": "AmeronWaterTransmissionGroupLLCMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_AtchisonFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to the Atchison facility.",
        "label": "Atchison Facility [Member]"
       }
      }
     },
     "localname": "AtchisonFacilityMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_BacklogMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information related to backlog.",
        "label": "Backlog [Member]"
       }
      }
     },
     "localname": "BacklogMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period for business acquisition due to measurement period adjustment in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.",
        "label": "nwpx_BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment",
        "terseLabel": "Business Acquisition, Increase (Decrease) in Inventories, Measurement Period Adjustment"
       }
      }
     },
     "localname": "BusinessAcquistionIncreaseDecreaseInInventoriesMeasurementPeriodAdjustment",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined) due to measurement period adjustment, this element represents the increase (decrease) amount of gain recognized by the entity.",
        "label": "nwpx_BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment",
        "terseLabel": "Business Combination, Bargain Purchase, Increase (Decrease) in Gain Recognized, Measurement Period Adjustment"
       }
      }
     },
     "localname": "BusinessCombinationBargainPurchaseIncreaseDecreaseInGainRecognizedMeasurementPeriodAdjustment",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to trade and other receivables acquired in connection with a business combination for which the initial accounting was incomplete.",
        "label": "nwpx_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables",
        "terseLabel": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Trade and Other Receivables"
       }
      }
     },
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentTradeAndOtherReceivables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 8.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of contract assets recognized as of the acquisition date.",
        "label": "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets",
        "verboseLabel": "Contract assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedContractAssets",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accrued liabilities, assumed at the acquisition date.",
        "label": "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities",
        "verboseLabel": "Accrued liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccruedLiabilities",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of contract liabilities, assumed at the acquisition date.",
        "label": "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities",
        "verboseLabel": "Contract liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesContractLiabilities",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease liabilities assumed at the acquisition date.",
        "label": "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities",
        "verboseLabel": "Operating lease liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseLiabilities",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease right-of-use assets acquired at the acquisition date.",
        "label": "nwpx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets",
        "verboseLabel": "Operating lease right-of-use assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOperatingLeaseRightOfUseAssets",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of incremental production costs due to business interruptions, net of business interruption insurance recovery.",
        "label": "nwpx_BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery",
        "terseLabel": "Business Interruption, Incremental Production Costs, Net of Insurance Recovery"
       }
      }
     },
     "localname": "BusinessInterruptionIncrementalProductionCostsNetOfInsuranceRecovery",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the vesting percentage of PSAs used as an assumption to determine the number of capital shares reserved for future issuance.",
        "label": "nwpx_CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed",
        "terseLabel": "Common Stock, Capital Shares Reserved for Future Issuance, Percentage Vesting of Outstanding PSAs Assumed"
       }
      }
     },
     "localname": "CommonStockCapitalSharesReservedForFutureIssuancePercentageVestingOfOutstandingPSAsAssumed",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company matching percentage on first 8% of employee contributions under defined contribution retirement plan.",
        "label": "nwpx_CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions",
        "terseLabel": "Company Matching Percentage on First Eight Percent of Employee Contributions"
       }
      }
     },
     "localname": "CompanyMatchingPercentageOnFirstEightPercentOfEmployeeContributions",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Company matching percentage on first 6% of employee contributions under defined contribution retirement plan.",
        "label": "nwpx_CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions",
        "terseLabel": "Company Matching Percentage on First Six Percent of Employee Contributions"
       }
      }
     },
     "localname": "CompanyMatchingPercentageOnFirstSixPercentOfEmployeeContributions",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Company matching percentage on first $10,000 of employee contributions under non-qualified retirement savings plan.",
        "label": "nwpx_CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions",
        "terseLabel": "Company Matching Percentage on First Ten Thousand Dollar Employee Contributions"
       }
      }
     },
     "localname": "CompanyMatchingPercentageOnFirstTenThousandDollarEmployeeContributions",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_ContractAssetsAndLiabilitiesPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for contract assets and liabilities.",
        "label": "Contract Assets and Liabilities, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "ContractAssetsAndLiabilitiesPolicyPolicyTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of specified real property securing the loan that the debt must not exceed according to covenant.",
        "label": "nwpx_DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty",
        "terseLabel": "Debt Instrument, Covenant, Maximum Debt Percentage of Securing Property"
       }
      }
     },
     "localname": "DebtInstrumentCovenantMaximumDebtPercentageOfSecuringProperty",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of excess cash flow that repayment may be required under debt instrument covenant",
        "label": "nwpx_DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow",
        "terseLabel": "Debt Instrument, Covenant, Repayment Percentage of Excess Cash Flow"
       }
      }
     },
     "localname": "DebtInstrumentCovenantRepaymentPercentageOfExcessCashFlow",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount required during the next 12 months for prepayment from excess cash flow generated during the current fiscal year.",
        "label": "nwpx_DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months",
        "terseLabel": "Debt Instrument, Prepayment from Excess Cash Flow Generated, Amount Payable in Next 12 Months"
       }
      }
     },
     "localname": "DebtInstrumentPrepaymentFromExcessCashFlowGeneratedAmountPayableInNext12Months",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state, local, federal and foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit",
        "totalLabel": "Total deferred income tax expense (benefit)"
       }
      }
     },
     "localname": "DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_DeferredTaxAssetTradeReceivableNet": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to trade receivables, net.",
        "label": "nwpx_DeferredTaxAssetTradeReceivableNet",
        "terseLabel": "Trade receivable, net"
       }
      }
     },
     "localname": "DeferredTaxAssetTradeReceivableNet",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_DeferredTaxLiabilitiesContractAssetsNet": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liabilities attributable to net contract assets",
        "label": "nwpx_DeferredTaxLiabilitiesContractAssetsNet",
        "negatedLabel": "Contract assets, net"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesContractAssetsNet",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_DefinedContributionPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the Defined Contribution Plan.",
        "label": "Defined Contribution Plan [Member]"
       }
      }
     },
     "localname": "DefinedContributionPlanMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_DefinedContributionPlanNumberOfInvestmentOptions": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Defined Contribution Plan Number Of Investment Options",
        "label": "nwpx_DefinedContributionPlanNumberOfInvestmentOptions",
        "terseLabel": "Defined Contribution Plan Number of Investment Options"
       }
      }
     },
     "localname": "DefinedContributionPlanNumberOfInvestmentOptions",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_DemobilizationActivitiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Demobilization activities associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Demobilization Activities [Member]"
       }
      }
     },
     "localname": "DemobilizationActivitiesMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_DepreciationAndFinanceLeaseRightOfUseAssetAmortization": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 14.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 and amount of amortization expense attributable to right-of-use asset from finance lease.",
        "label": "Depreciation and finance lease amortization"
       }
      }
     },
     "localname": "DepreciationAndFinanceLeaseRightOfUseAssetAmortization",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to bargain purchase gain (loss).",
        "label": "nwpx_EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss",
        "negatedLabel": "Bargain purchase gain"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationBargainPurchaseGainLoss",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 6.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to the tax windfall on stock based compensation.",
        "label": "Tax windfall on share-based compensation"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationTaxWindfallOnSharebasedCompensation",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Employee contribution for which company will match at 50% under defined contribution retirement plan.",
        "label": "nwpx_EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent",
        "terseLabel": "Employee Contribution Percentage for Which Company Will Match at Fifty Percent"
       }
      }
     },
     "localname": "EmployeeContributionPercentageForWhichCompanyWillMatchAtFiftyPercent",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_EquipmentUnderFinanceLeaseMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents equipment under finance lease.",
        "label": "Equipment Under Finance Lease [Member]"
       }
      }
     },
     "localname": "EquipmentUnderFinanceLeaseMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_EstimatedCostOfEPASelectedRemedy": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated cost of the remedy selected by EPA.",
        "label": "nwpx_EstimatedCostOfEPASelectedRemedy",
        "terseLabel": "Estimated Cost of EPA Selected Remedy"
       }
      }
     },
     "localname": "EstimatedCostOfEPASelectedRemedy",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_EstimatedTimeToCompleteSelectedEPARemedy": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated amount of time to complete the selected EPA remedy.",
        "label": "nwpx_EstimatedTimeToCompleteSelectedEPARemedy",
        "terseLabel": "Estimated Time to Complete Selected EPA Remedy (Year)"
       }
      }
     },
     "localname": "EstimatedTimeToCompleteSelectedEPARemedy",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "nwpx_GainLossOnDispositionOfFacility": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of a facility.",
        "label": "nwpx_GainLossOnDispositionOfFacility",
        "negatedLabel": "Gain on sale of facilities"
       }
      }
     },
     "localname": "GainLossOnDispositionOfFacility",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_GainOnInsuranceProceeds": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of gain on insurance proceeds recognized during the period.",
        "label": "nwpx_GainOnInsuranceProceeds",
        "negatedLabel": "Gain on insurance proceeds"
       }
      }
     },
     "localname": "GainOnInsuranceProceeds",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_GenevaPipeCompanyIncMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information pertaining to Geneva Pipe Company, Inc. acquisition.",
        "label": "Geneva Pipe Company, Inc. [Member]"
       }
      }
     },
     "localname": "GenevaPipeCompanyIncMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to Federal and State tax credits.",
        "label": "nwpx_IncomeTaxReconciliationTaxFederalAndStateTaxCredits",
        "negatedLabel": "Federal and state income tax credits"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxFederalAndStateTaxCredits",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the period of the amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer.",
        "label": "nwpx_IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax",
        "terseLabel": "Increase (Decrease) in Revenue from Contract with Customers, Including Assessed Tax"
       }
      }
     },
     "localname": "IncreaseDecreaseInRevenueFromContractWithCustomersIncludingAssessedTax",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of interest expense recorded during the period from debt and finance leases, net of amounts capitalized.",
        "label": "nwpx_InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized",
        "terseLabel": "Interest Expense, Debt and Finance Leases, Net of Amounts Capitalized"
       }
      }
     },
     "localname": "InterestExpenseDebtAndFinanceLeasesNetOfAmountsCapitalized",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_LeaseLiability": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating and finance lease.",
        "label": "nwpx_LeaseLiability",
        "totalLabel": "Total lease liabilities"
       }
      }
     },
     "localname": "LeaseLiability",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_LeaseRightOfUseAsset": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under lease.",
        "label": "nwpx_LeaseRightOfUseAsset",
        "totalLabel": "Total right-of-use assets"
       }
      }
     },
     "localname": "LeaseRightOfUseAsset",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease terms and discount rates for lease liabilities.",
        "label": "Lease Terms and Discount Rates for Lease Liabilities [Table Text Block]"
       }
      }
     },
     "localname": "LeaseTermsAndDiscountRatesForLeaseLiabilitiesTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_LesseeLeaseAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The tabular disclosure for assets and liabilities of leases of the lessee.",
        "label": "Lessee, Lease, Assets and Liabilities [Table Text Block]"
       }
      }
     },
     "localname": "LesseeLeaseAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_LesseeLeaseDisclosureTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for leases of lessee.",
        "label": "Lessee, Lease, Disclosure [Text Block]"
       }
      }
     },
     "localname": "LesseeLeaseDisclosureTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_LesseeLiabilityMaturityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating and finace lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating and finance lease liability recognized in statement of financial position.",
        "label": "Lessee, Liability, Maturity [Table Text Block]"
       }
      }
     },
     "localname": "LesseeLiabilityMaturityTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_LowerWillametteGroupMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Refers to information regarding the Lower Willamette Group.",
        "label": "Lower Willamette Group [Member]"
       }
      }
     },
     "localname": "LowerWillametteGroupMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_MaximumSeniorLeverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum senior leverage ratio.",
        "label": "nwpx_MaximumSeniorLeverageRatio",
        "terseLabel": "Maximum Senior Leverage Ratio"
       }
      }
     },
     "localname": "MaximumSeniorLeverageRatio",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "pureItemType"
    },
    "nwpx_MinimumFixedChargeCoverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The minimum fixed charge coverage ratio.",
        "label": "nwpx_MinimumFixedChargeCoverageRatio",
        "terseLabel": "Minimum Fixed Charge Coverage Ratio"
       }
      }
     },
     "localname": "MinimumFixedChargeCoverageRatio",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "pureItemType"
    },
    "nwpx_MonterreyMexicoFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Monterrey, Mexico facility.",
        "label": "Monterrey, Mexico Facility [Member]"
       }
      }
     },
     "localname": "MonterreyMexicoFacilityMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_NonqualifiedRetirementSavingsPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information pertaining to the Non-qualified Retirement Savings Plan.",
        "label": "Non-qualified Retirement Savings Plan [Member]"
       }
      }
     },
     "localname": "NonqualifiedRetirementSavingsPlanMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_NoteToFinancialStatementDetailsTextual": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note To Financial Statement Details Textual"
       }
      }
     },
     "localname": "NoteToFinancialStatementDetailsTextual",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_NotesToFinancialStatementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Notes To Financial Statements [Abstract]"
       }
      }
     },
     "localname": "NotesToFinancialStatementsAbstract",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_NumberOfActiveStockIncentivePlans": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of active stock incentive plans.",
        "label": "nwpx_NumberOfActiveStockIncentivePlans",
        "terseLabel": "Number Of Active Stock Incentive Plans"
       }
      }
     },
     "localname": "NumberOfActiveStockIncentivePlans",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of customers with balances in excess of 10% of total accounts receivable.",
        "label": "nwpx_NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables",
        "terseLabel": "Number of Customers with Receivable Balance in Excess of Ten Percent of Receivables"
       }
      }
     },
     "localname": "NumberOfCustomersWithReceivableBalanceInExcessOfTenPercentOfReceivables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_NumberOfMajorCustomers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the number of major customers accounting for 10% or more of the specified concentration risk benchmark, which includes, but not limited to, sales revenue, accounts receivable, etc.",
        "label": "nwpx_NumberOfMajorCustomers",
        "terseLabel": "Number of Major Customers"
       }
      }
     },
     "localname": "NumberOfMajorCustomers",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_NumberOfNoncontributoryDefinedBenefitPlans": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of noncontributory defined benefit plans.",
        "label": "nwpx_NumberOfNoncontributoryDefinedBenefitPlans",
        "terseLabel": "Number of Non-contributory Defined Benefit Plans"
       }
      }
     },
     "localname": "NumberOfNoncontributoryDefinedBenefitPlans",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_NumberOfPotentiallyResponsibleParties": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of potentially responsible parties for Portland Harbor Superfund site.",
        "label": "nwpx_NumberOfPotentiallyResponsibleParties",
        "terseLabel": "Number Of Potentially Responsible Parties"
       }
      }
     },
     "localname": "NumberOfPotentiallyResponsibleParties",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents Officer contributions for which Company will match at 50% under non-qualified retirement savings plan.",
        "label": "nwpx_OfficerContributionForWhichCompanyWillMatchAtFiftyPercent",
        "terseLabel": "Officer Contribution for Which Company Will Match at Fifty Percent"
       }
      }
     },
     "localname": "OfficerContributionForWhichCompanyWillMatchAtFiftyPercent",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_OperatingLossCarryforwardsExpirationYear": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expiration year of the operating loss carryforward.",
        "label": "nwpx_OperatingLossCarryforwardsExpirationYear",
        "terseLabel": "Operating Loss Carryforwards, Expiration Year"
       }
      }
     },
     "localname": "OperatingLossCarryforwardsExpirationYear",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "gYearItemType"
    },
    "nwpx_OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of other information related to operating and finance leases.",
        "label": "Other Information Related to Operating and Finance Leases [Table Text Block]"
       }
      }
     },
     "localname": "OtherInformationRelatedToOperatingAndFinanceLeasesTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_OtherLongtermLiabilitiesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents other long-term liabilities.",
        "label": "Other Long-term Liabilities [Member]"
       }
      }
     },
     "localname": "OtherLongtermLiabilitiesMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_OutOfPeriodAdjustmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents out of period adjustments.",
        "label": "Out of Period Adjustment [Member]"
       }
      }
     },
     "localname": "OutOfPeriodAdjustmentMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PerformanceAwardsIssuedMultiplier": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The percentage of the performance awards issued multiplier.",
        "label": "nwpx_PerformanceAwardsIssuedMultiplier",
        "terseLabel": "Performance Awards Issued Multiplier"
       }
      }
     },
     "localname": "PerformanceAwardsIssuedMultiplier",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_PlacedInEscrowUnitilFebruary2018Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the amount placed in escrow until February 2018.",
        "label": "Placed in Escrow Unitil February 2018 [Member]"
       }
      }
     },
     "localname": "PlacedInEscrowUnitilFebruary2018Member",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PlacedInEscrowUntilDecember2018Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the amount placed in escrow until December 2018.",
        "label": "Placed in Escrow Until December 2018 [Member]"
       }
      }
     },
     "localname": "PlacedInEscrowUntilDecember2018Member",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PortlandHarborNaturalreSourcesTrusteeCouncilMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name or description of the loss contingency by its nature.",
        "label": "Portland Harbor Natural Resources Trustee Council [Member]"
       }
      }
     },
     "localname": "PortlandHarborNaturalreSourcesTrusteeCouncilMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PortlandHarborSuperfundSiteMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the Portland Harbor Superfund Site.",
        "label": "Portland Harbor Superfund Site [Member]"
       }
      }
     },
     "localname": "PortlandHarborSuperfundSiteMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_ProceedsFromSaleOfFacility": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the sale of a facility used in the normal conduct of business to produce goods and services and not intended for resale.",
        "label": "Proceeds from sale of facilities"
       }
      }
     },
     "localname": "ProceedsFromSaleOfFacility",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_PropertyAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents property and equipment.",
        "label": "Property and Equipment [Member]"
       }
      }
     },
     "localname": "PropertyAndEquipmentMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PropertyInHoustonTexasMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to property in Houston, Texas.",
        "label": "Property in Houston, Texas [Member]"
       }
      }
     },
     "localname": "PropertyInHoustonTexasMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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 excluding construction in progress and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress",
        "totalLabel": "Property, Plant and Equipment, Net, Excluding Construction In Progress"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNetExcludingConstructionInProgress",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the target level percentage for restricted stock unit and performance share awards.",
        "label": "nwpx_RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage",
        "terseLabel": "Restricted Stock Units and Performance Share Award Target Level, Percentage"
       }
      }
     },
     "localname": "RestrictedStockUnitsAndPerformanceShareAwardTargetLevelPercentage",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "nwpx_RestrictedStockUnitsAndPerformanceStockAwardsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type or description of the award.",
        "label": "Restricted Stock Units and Performance Stock Awards [Member]"
       }
      }
     },
     "localname": "RestrictedStockUnitsAndPerformanceStockAwardsMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_RetirementPlanExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents retirement plan expense.",
        "label": "nwpx_RetirementPlanExpense",
        "terseLabel": "Retirement Plan Expense"
       }
      }
     },
     "localname": "RetirementPlanExpense",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents schedule of changes in accumulated other comprehensive income loss.",
        "label": "Schedule of Changes in Accumulated Other Comprehensive Income Loss [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfChangesInAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock": {
     "auth_ref": [],
     "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. Includes current and non-current inventory balances.",
        "label": "Schedule Of Inventory Current And Non Current [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentAndNonCurrentTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in restricted stock units (RSUs) and performance share awards (PSAs).",
        "label": "Schedule of Unvested Restricted Stock Units and Performance Share Awards Activity [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfUnvestedRestrictedStockUnitsAndPerformanceShareAwardsActivityTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents select employee contributions for which Company will match at 50% under non-qualified retirement savings plan.",
        "label": "nwpx_SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent",
        "terseLabel": "Select Employee Contribution for Which Company Will Match at Fifty Percent"
       }
      }
     },
     "localname": "SelectEmployeeContributionForWhichCompanyWillMatchAtFiftyPercent",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of non-vested equity-based payment instruments at a target level of performance, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.",
        "label": "nwpx_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance",
        "terseLabel": "Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number At Target Level Of Performance (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumberAtTargetLevelOfPerformance",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the stock-based payment award grant date fair value under a share-based compensation arrangement.",
        "label": "nwpx_ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue",
        "terseLabel": "Share-based Compensation Arrangement by Stock-based Payment Award, Grant Date Fair Value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByStockBasedPaymentAwardGrantDateFairValue",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "perShareItemType"
    },
    "nwpx_SummaryOfValuationAndQualifyingAccountsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A schedule of allowance and reserve accounts including their beginning and ending balances, as well as a reconciliation by type of activity during the period. Alternatively, disclosure of the required information may be within the footnotes to the financial statements or a supplemental schedule to the financial statements.",
        "label": "Summary of Valuation and Qualifying Accounts [Table Text Block]"
       }
      }
     },
     "localname": "SummaryOfValuationAndQualifyingAccountsTableTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_TaxCreditCarryforwardExpirationYear": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Expiration year of the tax credit carryforward.",
        "label": "nwpx_TaxCreditCarryforwardExpirationYear",
        "terseLabel": "Tax Credit Carryforward, Expiration Year"
       }
      }
     },
     "localname": "TaxCreditCarryforwardExpirationYear",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "gYearItemType"
    },
    "nwpx_TermLoanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents information regarding a term loan.",
        "label": "Term Loan [Member]"
       }
      }
     },
     "localname": "TermLoanMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_WellsFargoBankNAMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Related to the lender Wells Fargo Bank, N.A.",
        "label": "Wells Fargo Bank, N.A. [Member]"
       }
      }
     },
     "localname": "WellsFargoBankNAMember",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "domainItemType"
    },
    "nwpx_WorkersCompensationInsurancePolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for workers compensation insurance and calculation of liability balance.",
        "label": "Workers Compensation Insurance [Policy Text Block]"
       }
      }
     },
     "localname": "WorkersCompensationInsurancePolicyTextBlock",
     "nsuri": "http://www.nwpipe.com/20201231",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nwpx_statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 10 - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on Recurring Basis (Details)"
       }
      }
     },
     "localname": "statement-statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-10-fair-value-measurements-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 10 - Fair Value Measurements"
       }
      }
     },
     "localname": "statement-statement-note-10-fair-value-measurements-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 13 - Share-based Compensation - RSU and PSA Activity (Details)"
       }
      }
     },
     "localname": "statement-statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-13-sharebased-compensation-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 13 - Share-based Compensation"
       }
      }
     },
     "localname": "statement-statement-note-13-sharebased-compensation-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-15-revenue-disaggregation-of-revenue-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 15 - Revenue - Disaggregation of Revenue (Details)"
       }
      }
     },
     "localname": "statement-statement-note-15-revenue-disaggregation-of-revenue-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 15 - Revenue - Net Sales From Continuing Operations by Geographic Region (Details)"
       }
      }
     },
     "localname": "statement-statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-15-revenue-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 15 - Revenue"
       }
      }
     },
     "localname": "statement-statement-note-15-revenue-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes - Effective Income Tax Rate Reconciliation (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes - Income (Loss) from Continuing Operations (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes - Summary of Changes in Unrecognized Tax Benefits (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes - Summary of Components of Income Tax Expense for Continuing Operations (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes - Summary of Current and Noncurrent Deferred Tax Assets and Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-16-income-taxes-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 16 - Income Taxes"
       }
      }
     },
     "localname": "statement-statement-note-16-income-taxes-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Accumulated Other Comprehensive Loss - Components of Accumulated Other Comprehensive Loss (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Accumulated Other Comprehensive Loss - Reclassification of Accumulated Other Comprehensive Loss (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details)"
       }
      }
     },
     "localname": "statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Accumulated Other Comprehensive Loss - Summary of Accumulated Other Comprehensive Loss (Details) (Parentheticals)"
       }
      }
     },
     "localname": "statement-statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-17-accumulated-other-comprehensive-loss-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 17 - Accumulated Other Comprehensive Loss"
       }
      }
     },
     "localname": "statement-statement-note-17-accumulated-other-comprehensive-loss-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 2 - Summary of Significant Accounting Policies - Loss Per Basic and Diluted Weighted Average Common Share Outstanding for Continuing and Discontinued Operations (Details)"
       }
      }
     },
     "localname": "statement-statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 2 - Summary of Significant Accounting Policies - Summary of Accrued Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-2-summary-of-significant-accounting-policies-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 2 - Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "statement-statement-note-2-summary-of-significant-accounting-policies-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Business Combinations - Assets Acquired and Liabilities Assumed (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-3-business-combinations-intangible-assets-acquired-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Business Combinations - Intangible Assets Acquired (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-business-combinations-intangible-assets-acquired-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-3-business-combinations-pro-forma-summary-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Business Combinations - Pro Forma Summary (Details)"
       }
      }
     },
     "localname": "statement-statement-note-3-business-combinations-pro-forma-summary-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-3-business-combinations-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 3 - Business Combinations"
       }
      }
     },
     "localname": "statement-statement-note-3-business-combinations-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-5-inventories-components-of-inventories-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 5 - Inventories - Components of Inventories (Details)"
       }
      }
     },
     "localname": "statement-statement-note-5-inventories-components-of-inventories-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-5-inventories-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 5 - Inventories"
       }
      }
     },
     "localname": "statement-statement-note-5-inventories-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 6 - Property and Equipment - Property, Plant and Equipment (Details)"
       }
      }
     },
     "localname": "statement-statement-note-6-property-and-equipment-property-plant-and-equipment-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-6-property-and-equipment-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 6 - Property and Equipment"
       }
      }
     },
     "localname": "statement-statement-note-6-property-and-equipment-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Goodwill and Intangible Assets - Schedule of Goodwill (Details)"
       }
      }
     },
     "localname": "statement-statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Goodwill and Intangible Assets - Summary of Estimated Amortization Expense (Details)"
       }
      }
     },
     "localname": "statement-statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Goodwill and Intangible Assets - Summary of Intangible Assets (Details)"
       }
      }
     },
     "localname": "statement-statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-7-goodwill-and-intangible-assets-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 7 - Goodwill and Intangible Assets"
       }
      }
     },
     "localname": "statement-statement-note-7-goodwill-and-intangible-assets-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 8 - Line of Credit and Long-term Debt - Future Principal Payments of Long-term Debt (Details)"
       }
      }
     },
     "localname": "statement-statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-8-line-of-credit-and-longterm-debt-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 8 - Line of Credit and Long-term Debt"
       }
      }
     },
     "localname": "statement-statement-note-8-line-of-credit-and-longterm-debt-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases - Future Maturities of Lease Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-future-maturities-of-lease-liabilities-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-lease-cost-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases - Lease Cost (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-lease-cost-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases - Lease Terms and Discount Rates for Lease Liabilities (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases - Leases Recorded on the Consolidated Balance Sheet (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases - Other Information Related to Operating and Finance Leases (Details)"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note-9-leases-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note 9 - Leases"
       }
      }
     },
     "localname": "statement-statement-note-9-leases-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Note13 - Share-based Compensation - Share-based Compensation Expense (Details)"
       }
      }
     },
     "localname": "statement-statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule II - Valuation and Qualifying Accounts"
       }
      }
     },
     "localname": "statement-statement-schedule-ii-valuation-and-qualifying-accounts-tables",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Schedule II - Valuation and Qualifying Accounts - Valuation and Qualifying Accounts (Details)"
       }
      }
     },
     "localname": "statement-statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "nwpx_statement-statement-significant-accounting-policies-policies": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Significant Accounting Policies"
       }
      }
     },
     "localname": "statement-statement-significant-accounting-policies-policies",
     "nsuri": "http://www.nwpipe.com/20201231",
     "xbrltype": "stringItemType"
    },
    "srt_CounterpartyNameAxis": {
     "auth_ref": [
      "r61",
      "r120",
      "r649"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of counterparty. A counterparty is the other party that participates in a financial transaction. Examples include, but not limited to, the name of the financial institution.",
        "label": "Counterparty Name [Axis]"
       }
      }
     },
     "localname": "CounterpartyNameAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionAdjustmentMember": {
     "auth_ref": [
      "r140",
      "r147",
      "r209",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase (decrease) to financial statements for cumulative-effect adjustment in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption, Adjustment [Member]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAdjustmentMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionAxis": {
     "auth_ref": [
      "r140",
      "r147",
      "r209",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption [Axis]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_CumulativeEffectPeriodOfAdoptionDomain": {
     "auth_ref": [
      "r140",
      "r147",
      "r209",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cumulative-effect adjustment to financial statements in period of adoption of amendment to accounting standards.",
        "label": "Cumulative Effect, Period of Adoption [Domain]"
       }
      }
     },
     "localname": "CumulativeEffectPeriodOfAdoptionDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_DirectorMember": {
     "auth_ref": [
      "r198"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Person serving on board of directors.",
        "label": "Director [Member]"
       }
      }
     },
     "localname": "DirectorMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r375",
      "r380",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r609",
      "r611"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Upper limit of the provided range.",
        "label": "Maximum [Member]"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r375",
      "r380",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r609",
      "r611"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Lower limit of the provided range.",
        "label": "Minimum [Member]"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r319",
      "r375",
      "r380",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r609",
      "r611"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r319",
      "r375",
      "r380",
      "r562",
      "r563",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r609",
      "r611"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median.",
        "label": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RepurchaseAgreementCounterpartyNameDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Named other party that participates in a financial transaction. Examples include, but not limited to, the name of the financial institution.",
        "label": "Counterparty Name [Domain]"
       }
      }
     },
     "localname": "RepurchaseAgreementCounterpartyNameDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": {
     "auth_ref": [
      "r134",
      "r648"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]"
       }
      }
     },
     "localname": "ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r194",
      "r195",
      "r285",
      "r289",
      "r610",
      "r631",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Geographical area.",
        "label": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r194",
      "r195",
      "r285",
      "r289",
      "r610",
      "r626",
      "r631",
      "r632",
      "r633",
      "r634",
      "r635",
      "r636",
      "r637",
      "r638",
      "r639",
      "r646",
      "r647"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by geographical components.",
        "label": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualAxis": {
     "auth_ref": [
      "r198",
      "r558"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by title of individual or nature of relationship to individual or group of individuals.",
        "label": "Title of Individual [Axis]"
       }
      }
     },
     "localname": "TitleOfIndividualAxis",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_TitleOfIndividualWithRelationshipToEntityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of individual, or nature of relationship to individual or group of individuals.",
        "label": "Title of Individual [Domain]"
       }
      }
     },
     "localname": "TitleOfIndividualWithRelationshipToEntityDomain",
     "nsuri": "http://fasb.org/srt/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingStandardsUpdate201409Member": {
     "auth_ref": [
      "r291"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2014-09 Revenue from Contracts with Customers (Topic 606).",
        "label": "Accounting Standards Update 2014-09 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201409Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingStandardsUpdate201602Member": {
     "auth_ref": [
      "r540"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).",
        "label": "Accounting Standards Update 2016-02 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201602Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountingStandardsUpdate201802Member": {
     "auth_ref": [
      "r80"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2018-02 Income Statement-Reporting Comprehensive Income (Topic 220): Reclassification of Certain Tax Effects from Accumulated Other Comprehensive Income.",
        "label": "Accounting Standards Update 2018-02 [Member]"
       }
      }
     },
     "localname": "AccountingStandardsUpdate201802Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r44"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.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"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedBonusesCurrent": {
     "auth_ref": [
      "r11",
      "r12",
      "r48"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 4.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued bonus"
       }
      }
     },
     "localname": "AccruedBonusesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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",
        "totalLabel": "Total accrued liabilities"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedVacationCurrent": {
     "auth_ref": [
      "r11",
      "r48",
      "r293"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 2.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued vacation payable"
       }
      }
     },
     "localname": "AccruedVacationCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDefinedBenefitPlansAdjustmentMember": {
     "auth_ref": [
      "r63",
      "r70",
      "r71",
      "r492"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated other comprehensive (income) loss related to defined benefit plans attributable to the parent.",
        "label": "Accumulated Defined Benefit Plans Adjustment Attributable to Parent [Member]"
       }
      }
     },
     "localname": "AccumulatedDefinedBenefitPlansAdjustmentMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r42",
      "r238"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details": {
       "order": 0.0,
       "parentTag": "nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.",
        "label": "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
        "negatedLabel": "Less accumulated depreciation and amortization"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedGainLossNetCashFlowHedgeParentMember": {
     "auth_ref": [
      "r70",
      "r79",
      "r491"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated other comprehensive income (loss) from gain (loss) of derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent.",
        "label": "Accumulated Gain (Loss), Net, Cash Flow Hedge, Parent [Member]"
       }
      }
     },
     "localname": "AccumulatedGainLossNetCashFlowHedgeParentMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax": {
     "auth_ref": [
      "r64",
      "r70",
      "r340"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details": {
       "order": 0.0,
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax, of accumulated other comprehensive (income) loss for defined benefit plan, that has not been recognized in net periodic benefit cost (credit).",
        "label": "us-gaap_AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax",
        "negatedLabel": "Pension liability adjustment, net of income tax benefit of $679 and $671"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossDefinedBenefitPensionAndOtherPostretirementPlansNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r29",
      "r66",
      "r69",
      "r70",
      "r597",
      "r619",
      "r623"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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 loss",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r65",
      "r70",
      "r71",
      "r136",
      "r137",
      "r139",
      "r492",
      "r614",
      "r615"
     ],
     "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]"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "auth_ref": [
      "r228"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Intangible Asset Acquired, Useful Life (Year)"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "auth_ref": [
      "r27"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "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"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r136",
      "r137",
      "r139",
      "r410",
      "r411",
      "r412"
     ],
     "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]"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForErrorCorrectionDomain": {
     "auth_ref": [
      "r138",
      "r145",
      "r146",
      "r149",
      "r150",
      "r151",
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of error correction.",
        "label": "Error Correction, Type [Domain]"
       }
      }
     },
     "localname": "AdjustmentsForErrorCorrectionDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r141",
      "r142",
      "r143",
      "r144",
      "r206",
      "r207",
      "r208",
      "r209",
      "r210",
      "r211",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r447",
      "r448",
      "r449",
      "r450",
      "r571",
      "r572",
      "r573",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by amendment to accounting standards.",
        "label": "Accounting Standards Update [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r382",
      "r384",
      "r415",
      "r416"
     ],
     "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": "Share-based compensation expense"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to reconcile net income to net cash provided by (used in) operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r384",
      "r403",
      "r414"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "us-gaap_AllocatedShareBasedCompensationExpense",
        "terseLabel": "Share-based compensation expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForCreditLossMember": {
     "auth_ref": [
      "r133"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Allowance for credit loss from right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.",
        "label": "SEC Schedule, 12-09, Allowance, Credit Loss [Member]"
       }
      }
     },
     "localname": "AllowanceForCreditLossMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r200",
      "r212",
      "r213",
      "r214"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Allowance for doubtful accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r106",
      "r225",
      "r233"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 8.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": "us-gaap_AmortizationOfIntangibleAssets",
        "terseLabel": "Amortization of intangible assets"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r160"
     ],
     "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": "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax": {
     "auth_ref": [
      "r66"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details": {
       "order": 1.0,
       "parentTag": "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax, of accumulated gain (loss) on derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.",
        "label": "us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax",
        "terseLabel": "Unrealized loss on cash flow hedges, net of income tax benefit of $20 and $11"
       }
      }
     },
     "localname": "AociLossCashFlowHedgeCumulativeGainLossAfterTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r118",
      "r182",
      "r185",
      "r191",
      "r205",
      "r488",
      "r493",
      "r522",
      "r576",
      "r593"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "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": "us-gaap_Assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r8",
      "r9",
      "r58",
      "r118",
      "r205",
      "r488",
      "r493",
      "r522"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 2.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": "us-gaap_AssetsCurrent",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r386",
      "r405"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "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]"
       }
      }
     },
     "localname": "BalanceSheetLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "auth_ref": [
      "r502",
      "r505"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the balance sheet (statement of financial position).",
        "label": "Balance Sheet Location [Domain]"
       }
      }
     },
     "localname": "BalanceSheetLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BuildingMember": {
     "auth_ref": [
      "r237"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities.",
        "label": "Building [Member]"
       }
      }
     },
     "localname": "BuildingMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r370",
      "r376"
     ],
     "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]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r370",
      "r376",
      "r469",
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": {
     "auth_ref": [
      "r465"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination.",
        "label": "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired",
        "terseLabel": "Business Acquisition, Percentage of Voting Interests Acquired"
       }
      }
     },
     "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": {
     "auth_ref": [
      "r467",
      "r468"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.",
        "label": "Business Acquisition, Pro Forma Information [Table Text Block]"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaInformationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "auth_ref": [
      "r467",
      "r468"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss",
        "verboseLabel": "Net income"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "auth_ref": [
      "r467",
      "r468"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.",
        "label": "us-gaap_BusinessAcquisitionsProFormaRevenue",
        "verboseLabel": "Net sales"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "auth_ref": [
      "r464"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.",
        "label": "us-gaap_BusinessCombinationAcquisitionRelatedCosts",
        "terseLabel": "Business Combination, Acquisition Related Costs"
       }
      }
     },
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationBargainPurchaseGainRecognizedAmount": {
     "auth_ref": [
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r484"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "In a business combination in which the amount of net identifiable assets acquired and liabilities assumed exceeds the aggregate consideration transferred or to be transferred (as defined), this element represents the amount of gain recognized by the entity.",
        "label": "Bargain purchase gain",
        "negatedLabel": "Bargain purchase gain"
       }
      }
     },
     "localname": "BusinessCombinationBargainPurchaseGainRecognizedAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r481",
      "r482",
      "r483"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.",
        "label": "us-gaap_BusinessCombinationConsiderationTransferred1",
        "terseLabel": "Business Combination, Consideration Transferred, Total",
        "verboseLabel": "Total purchase consideration"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r485"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combination Disclosure [Text Block]"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": {
     "auth_ref": [
      "r466"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.",
        "label": "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
        "terseLabel": "Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual"
       }
      }
     },
     "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred": {
     "auth_ref": [
      "r473"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of any measurement period adjustment (as defined) realized during the reporting period to items of consideration transferred in connection with a business combination for which the initial accounting was incomplete.",
        "label": "us-gaap_BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred",
        "terseLabel": "Business Combination, Provisional Information, Initial Accounting Incomplete, Adjustment, Consideration Transferred"
       }
      }
     },
     "localname": "BusinessCombinationProvisionalInformationInitialAccountingIncompleteAdjustmentConsiderationTransferred",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of assets acquired at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
        "totalLabel": "Total assets acquired"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
        "verboseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "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, acquired at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets",
        "verboseLabel": "Prepaid expenses and other"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
        "verboseLabel": "Trade and other receivables"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
        "verboseLabel": "Accounts payable"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 0.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
        "verboseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
        "verboseLabel": "Intangible assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": {
     "auth_ref": [
      "r471",
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of inventory recognized as of the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
        "verboseLabel": "Inventories"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
        "totalLabel": "Total liabilities assumed"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
        "verboseLabel": "Other long-term liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "auth_ref": [
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
        "verboseLabel": "Other assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "auth_ref": [
      "r471",
      "r472"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details": {
       "order": 0.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.",
        "label": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
        "verboseLabel": "Property and equipment"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "auth_ref": [
      "r115",
      "r463"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.",
        "label": "Business Combinations Policy [Policy Text Block]"
       }
      }
     },
     "localname": "BusinessCombinationsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CapitalExpendituresIncurredButNotYetPaid": {
     "auth_ref": [
      "r111",
      "r112",
      "r113"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.",
        "label": "Accrued property and equipment purchases"
       }
      }
     },
     "localname": "CapitalExpendituresIncurredButNotYetPaid",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CapitalLossCarryforwardMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deductions derived from capital losses that cannot be utilized on the tax return during a period that have been carried forward to reduce taxable income or taxes payable in a future year.",
        "label": "Capital Loss Carryforward [Member]"
       }
      }
     },
     "localname": "CapitalLossCarryforwardMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r6",
      "r39",
      "r108"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.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"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r15",
      "r109",
      "r115"
     ],
     "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]"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": {
     "auth_ref": [
      "r102",
      "r108",
      "r114"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
        "periodEndLabel": "Cash and cash equivalents, end of period",
        "periodStartLabel": "Cash and cash equivalents, beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r102",
      "r525"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "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": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
        "totalLabel": "Change in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noncash investing and financing activities:"
       }
      }
     },
     "localname": "CashFlowNoncashInvestingAndFinancingActivitiesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations": {
     "auth_ref": [
      "r1",
      "r102"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) of investing activities of 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 investing activities from discontinued operations"
       }
      }
     },
     "localname": "CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r52",
      "r253",
      "r583",
      "r602"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and contingencies (Note 14)"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r250",
      "r251",
      "r252",
      "r261"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance": {
     "auth_ref": [
      "r53"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate number of common shares reserved for future issuance.",
        "label": "us-gaap_CommonStockCapitalSharesReservedForFutureIssuance",
        "terseLabel": "Common Stock, Capital Shares Reserved for Future Issuance (in shares)"
       }
      }
     },
     "localname": "CommonStockCapitalSharesReservedForFutureIssuance",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r136",
      "r137"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r25"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r25"
     ],
     "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 (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r25"
     ],
     "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 (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r25",
      "r268"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r25"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Common stock, $.01 par value, 15,000,000 shares authorized, 9,805,437 and 9,746,979 shares issued and outstanding"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "auth_ref": [
      "r74",
      "r76",
      "r77",
      "r84",
      "r586",
      "r605"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income": {
       "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": "us-gaap_ComprehensiveIncomeNetOfTax",
        "totalLabel": "Comprehensive income"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNoteTextBlock": {
     "auth_ref": [
      "r83",
      "r91",
      "r585",
      "r604"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for comprehensive income, which includes, but is not limited to, 1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component of comprehensive income.",
        "label": "Comprehensive Income (Loss) Note [Text Block]"
       }
      }
     },
     "localname": "ComprehensiveIncomeNoteTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for comprehensive income.",
        "label": "Comprehensive Income, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r172",
      "r173",
      "r197",
      "r520",
      "r521"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r172",
      "r173",
      "r197",
      "r520",
      "r521",
      "r624"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r172",
      "r173",
      "r197",
      "r520",
      "r521",
      "r624"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r168",
      "r590"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r172",
      "r173",
      "r197",
      "r520",
      "r521"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
        "label": "us-gaap_ConcentrationRiskPercentage1",
        "terseLabel": "Concentration Risk, Percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r172",
      "r173",
      "r197",
      "r520",
      "r521"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.",
        "label": "Concentration Risk Type [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "auth_ref": [
      "r115",
      "r490"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting.  The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.",
        "label": "Consolidation, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "ConsolidationPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConstructionInProgressMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.",
        "label": "Construction in Progress [Member]"
       }
      }
     },
     "localname": "ConstructionInProgressMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r273"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, from business combination.",
        "label": "us-gaap_ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination",
        "terseLabel": "Contract with Customer, Asset, Increase (Decrease) for Contract Acquired in Business Combination"
       }
      }
     },
     "localname": "ContractWithCustomerAssetIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "auth_ref": [
      "r270",
      "r272",
      "r286"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 2.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 in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract assets"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "auth_ref": [
      "r270",
      "r271",
      "r286"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 3.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 liabilities"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination": {
     "auth_ref": [
      "r273"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration from customer has been received or is due, from business combination.",
        "label": "us-gaap_ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
        "terseLabel": "Contract with Customer, Liability, Increase (Decrease) for Contract Acquired in Business Combination"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityIncreaseDecreaseForContractAcquiredInBusinessCombination",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r287"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "us-gaap_ContractWithCustomerLiabilityRevenueRecognized",
        "terseLabel": "Contract with Customer, Liability, Revenue Recognized"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "auth_ref": [
      "r87",
      "r569"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 0.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 sales"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSold",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostOfSalesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing cost of sales.",
        "label": "Cost of Sales [Member]"
       }
      }
     },
     "localname": "CostOfSalesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CreditFacilityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Axis]"
       }
      }
     },
     "localname": "CreditFacilityAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CreditFacilityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Domain]"
       }
      }
     },
     "localname": "CreditFacilityDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r443",
      "r453"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 0.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_CurrentFederalTaxExpenseBenefit",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r124",
      "r443"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 2.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_CurrentForeignTaxExpenseBenefit",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "CurrentForeignTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r443",
      "r453",
      "r455"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 0.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "us-gaap_CurrentIncomeTaxExpenseBenefit",
        "totalLabel": "Total current income tax expense"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r443",
      "r453"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 1.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_CurrentStateAndLocalTaxExpenseBenefit",
        "terseLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r171",
      "r197"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer Concentration Risk [Member]"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r475"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer Relationships [Member]"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r267"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Debt Disclosure [Text Block]"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r18",
      "r19",
      "r20",
      "r577",
      "r581",
      "r592"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.",
        "label": "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1",
        "terseLabel": "Debt Instrument, Basis Spread on Variable Rate"
       }
      }
     },
     "localname": "DebtInstrumentBasisSpreadOnVariableRate1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentCarryingAmount": {
     "auth_ref": [
      "r20",
      "r265",
      "r581",
      "r592"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt.",
        "label": "us-gaap_DebtInstrumentCarryingAmount",
        "totalLabel": "Total future principal payments"
       }
      }
     },
     "localname": "DebtInstrumentCarryingAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentFaceAmount": {
     "auth_ref": [
      "r536",
      "r538"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face (par) amount of debt instrument at time of issuance.",
        "label": "us-gaap_DebtInstrumentFaceAmount",
        "terseLabel": "Debt Instrument, Face Amount"
       }
      }
     },
     "localname": "DebtInstrumentFaceAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r50"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentPeriodicPayment": {
     "auth_ref": [
      "r50",
      "r589"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the required periodic payments including both interest and principal payments.",
        "label": "us-gaap_DebtInstrumentPeriodicPayment",
        "terseLabel": "Long-term Debt, Monthly Repayment of Principal"
       }
      }
     },
     "localname": "DebtInstrumentPeriodicPayment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtWeightedAverageInterestRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average interest rate of debt outstanding.",
        "label": "us-gaap_DebtWeightedAverageInterestRate",
        "terseLabel": "Debt, Weighted Average Interest Rate"
       }
      }
     },
     "localname": "DebtWeightedAverageInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate carrying value as of the balance sheet date of the liabilities for all deferred compensation arrangements payable beyond one year (or the operating cycle, if longer).",
        "label": "us-gaap_DeferredCompensationLiabilityClassifiedNoncurrent",
        "terseLabel": "Deferred Compensation Liability, Classified, Noncurrent, Total"
       }
      }
     },
     "localname": "DeferredCompensationLiabilityClassifiedNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredCompensationPlanAssets": {
     "auth_ref": [
      "r43"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying amount as of the balance sheet date of assets held under deferred compensation agreements.",
        "label": "Deferred compensation plan",
        "terseLabel": "Deferred Compensation Plan Assets"
       }
      }
     },
     "localname": "DeferredCompensationPlanAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r444",
      "r453"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 1.0,
       "parentTag": "nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_DeferredFederalIncomeTaxExpenseBenefit",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFinanceCostsNet": {
     "auth_ref": [
      "r43",
      "r537"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.",
        "label": "us-gaap_DeferredFinanceCostsNet",
        "negatedLabel": "Less: Unamortized debt issuance costs"
       }
      }
     },
     "localname": "DeferredFinanceCostsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r444",
      "r453"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 2.0,
       "parentTag": "nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_DeferredForeignIncomeTaxExpenseBenefit",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "auth_ref": [
      "r421",
      "r422"
     ],
     "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, included in Other assets"
       }
      }
     },
     "localname": "DeferredIncomeTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r106",
      "r119",
      "r444",
      "r453",
      "r454",
      "r455"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "auth_ref": [
      "r22",
      "r23",
      "r433",
      "r578",
      "r591"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.",
        "label": "us-gaap_DeferredIncomeTaxLiabilities",
        "negatedTotalLabel": "Total deferred tax liabilities"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r421",
      "r422"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 2.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": "us-gaap_DeferredIncomeTaxLiabilitiesNet",
        "negatedLabel": "Deferred income taxes",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r444",
      "r453"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": 0.0,
       "parentTag": "nwpx_DeferredFederalStateAndLocalAndForeignIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit",
        "terseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r434"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "us-gaap_DeferredTaxAssetsGross",
        "totalLabel": "Deferred tax assets, gross"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.",
        "label": "us-gaap_DeferredTaxAssetsInventory",
        "terseLabel": "Inventories"
       }
      }
     },
     "localname": "DeferredTaxAssetsInventory",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r436"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "us-gaap_DeferredTaxAssetsNet",
        "totalLabel": "Deferred tax assets, net"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.",
        "label": "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards",
        "terseLabel": "Net operating loss carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.",
        "label": "us-gaap_DeferredTaxAssetsOther",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "auth_ref": [
      "r439",
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.",
        "label": "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards",
        "terseLabel": "Tax credit carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from employee benefits, classified as other.",
        "label": "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits",
        "terseLabel": "Accrued employee benefits"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeBenefits",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r435"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_DeferredTaxAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.",
        "label": "us-gaap_DeferredTaxAssetsValuationAllowance",
        "negatedTerseLabel": "Valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilities": {
     "auth_ref": [
      "r422",
      "r436"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.",
        "label": "us-gaap_DeferredTaxLiabilities",
        "negatedLabel": "Net deferred income tax liabilities",
        "negatedTotalLabel": "Net deferred income tax liabilities"
       }
      }
     },
     "localname": "DeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.",
        "label": "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
        "negatedTerseLabel": "Intangible assets"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPrepaidExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax consequences attributable to taxable temporary differences derived from prepaid expenses.",
        "label": "us-gaap_DeferredTaxLiabilitiesPrepaidExpenses",
        "negatedTerseLabel": "Prepaid expenses"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPrepaidExpenses",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r441",
      "r442"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment",
        "negatedTerseLabel": "Property and equipment"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation": {
     "auth_ref": [
      "r328"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of actuarial present value of benefits attributed to employee service rendered, excluding assumptions about future compensation level.",
        "label": "us-gaap_DefinedBenefitPlanAccumulatedBenefitObligation",
        "terseLabel": "Defined Benefit Plan, Accumulated Benefit Obligation"
       }
      }
     },
     "localname": "DefinedBenefitPlanAccumulatedBenefitObligation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate": {
     "auth_ref": [
      "r341"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average rate for present value of future retirement benefits cash flows, used to determine benefit obligation of defined benefit plan.",
        "label": "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate",
        "terseLabel": "Defined Benefit Plan, Assumptions Used Calculating Benefit Obligation, Discount Rate"
       }
      }
     },
     "localname": "DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets": {
     "auth_ref": [
      "r342",
      "r362"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average rate of return on plan assets, reflecting average rate of earnings expected on existing plan assets and expected contributions, used to determine net periodic benefit cost of defined benefit plan.",
        "label": "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets",
        "terseLabel": "Defined Benefit Plan, Assumptions Used Calculating Net Periodic Benefit Cost, Expected Long-term Rate of Return on Plan Assets"
       }
      }
     },
     "localname": "DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostExpectedLongTermReturnOnAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedBenefitPlanFairValueOfPlanAssets": {
     "auth_ref": [
      "r309",
      "r320",
      "r322",
      "r323",
      "r363"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset segregated and restricted to provide benefit under defined benefit plan. Asset includes, but is not limited to, stock, bond, other investment, earning from investment, and contribution by employer and employee.",
        "label": "us-gaap_DefinedBenefitPlanFairValueOfPlanAssets",
        "terseLabel": "Defined Benefit Plan, Plan Assets, Amount, Ending Balance"
       }
      }
     },
     "localname": "DefinedBenefitPlanFairValueOfPlanAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost": {
     "auth_ref": [
      "r331",
      "r353",
      "r363",
      "r364"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of net periodic benefit cost (credit) for defined benefit plan.",
        "label": "us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost",
        "terseLabel": "Defined Benefit Plan, Net Periodic Benefit Cost (Credit), Total"
       }
      }
     },
     "localname": "DefinedBenefitPlanNetPeriodicBenefitCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeContractTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset.",
        "label": "Derivative Contract [Domain]"
       }
      }
     },
     "localname": "DerivativeContractTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "auth_ref": [
      "r503",
      "r504",
      "r508",
      "r510"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of derivative contract.",
        "label": "Derivative Instrument [Axis]"
       }
      }
     },
     "localname": "DerivativeInstrumentRiskAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r515"
     ],
     "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]"
       }
      }
     },
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet": {
     "auth_ref": [
      "r507",
      "r509"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of realized and unrealized gain (loss) of derivative instruments not designated or qualifying as hedging instruments.",
        "label": "us-gaap_DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet",
        "terseLabel": "Derivative Instruments Not Designated as Hedging Instruments, Gain (Loss), Net, Total"
       }
      }
     },
     "localname": "DerivativeInstrumentsNotDesignatedAsHedgingInstrumentsGainLossNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilities": {
     "auth_ref": [
      "r59",
      "r60",
      "r519"
     ],
     "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": "us-gaap_DerivativeLiabilities",
        "negatedTerseLabel": "Foreign currency forward contracts"
       }
      }
     },
     "localname": "DerivativeLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeLiabilitiesCurrent": {
     "auth_ref": [
      "r59"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "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, expected to be settled within one year or normal operating cycle, if longer. Includes assets not subject to a master netting arrangement and not elected to be offset.",
        "label": "Foreign currency forward contracts"
       }
      }
     },
     "localname": "DerivativeLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativeNotionalAmount": {
     "auth_ref": [
      "r497",
      "r499"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Nominal or face amount used to calculate payment on derivative.",
        "label": "us-gaap_DerivativeNotionalAmount",
        "terseLabel": "Derivative, Notional Amount"
       }
      }
     },
     "localname": "DerivativeNotionalAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DerivativesPolicyTextBlock": {
     "auth_ref": [
      "r115",
      "r125",
      "r496",
      "r498",
      "r500",
      "r501",
      "r512"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities.",
        "label": "Derivatives, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "DerivativesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DesignatedAsHedgingInstrumentMember": {
     "auth_ref": [
      "r500"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Derivative instrument designated as hedging instrument under Generally Accepted Accounting Principles (GAAP).",
        "label": "Designated as Hedging Instrument [Member]"
       }
      }
     },
     "localname": "DesignatedAsHedgingInstrumentMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "auth_ref": [
      "r285"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.",
        "label": "Disaggregation of Revenue [Table Text Block]"
       }
      }
     },
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r417"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Share-based Payment Arrangement [Text Block]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_DisclosureTextBlockAbstract",
        "terseLabel": "Notes to Financial Statements"
       }
      }
     },
     "localname": "DisclosureTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisposalGroupClassificationAxis": {
     "auth_ref": [
      "r2"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by disposal group classification.",
        "label": "Disposal Group Classification [Axis]"
       }
      }
     },
     "localname": "DisposalGroupClassificationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisposalGroupClassificationDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Component or group of components disposed of, including but not limited to, disposal group held-for-sale or disposed of by sale, disposed of by means other than sale, and discontinued operations.",
        "label": "Disposal Group Classification [Domain]"
       }
      }
     },
     "localname": "DisposalGroupClassificationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of consideration received or receivable for the disposal of assets and liabilities, including discontinued operation.",
        "label": "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration",
        "terseLabel": "Disposal Group, Including Discontinued Operation, Consideration"
       }
      }
     },
     "localname": "DisposalGroupIncludingDiscontinuedOperationConsideration",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock": {
     "auth_ref": [
      "r4",
      "r241"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.",
        "label": "Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]"
       }
      }
     },
     "localname": "DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain": {
     "auth_ref": [
      "r370",
      "r376"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of disposal group.",
        "label": "Disposal Group Name [Domain]"
       }
      }
     },
     "localname": "DisposalGroupsIncludingDiscontinuedOperationsNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "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]"
       }
      }
     },
     "localname": "DomesticCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net income per common share",
        "terseLabel": "Net income per share:"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r85",
      "r145",
      "r146",
      "r147",
      "r148",
      "r149",
      "r153",
      "r155",
      "r157",
      "r158",
      "r159",
      "r162",
      "r163",
      "r587",
      "r606"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Basic (in dollars per share)",
        "terseLabel": "Basic (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r85",
      "r145",
      "r146",
      "r147",
      "r148",
      "r149",
      "r155",
      "r157",
      "r158",
      "r159",
      "r162",
      "r163",
      "r587",
      "r606"
     ],
     "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": "Diluted (in dollars per share)",
        "terseLabel": "Diluted (in dollars per share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r115",
      "r160",
      "r161"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.",
        "label": "Earnings Per Share, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r424"
     ],
     "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"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r424",
      "r457"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
        "terseLabel": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r404"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
        "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition (Year)"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions": {
     "auth_ref": [
      "r404"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost to be recognized for nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions",
        "terseLabel": "Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeSeveranceMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Termination of an employee associated with exit from or disposal of business activities or restructurings pursuant to a plan.",
        "label": "Employee Severance [Member]"
       }
      }
     },
     "localname": "EmployeeSeveranceMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EmployeeStockOptionMember": {
     "auth_ref": [
      "r401"
     ],
     "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]"
       }
      }
     },
     "localname": "EmployeeStockOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EnvironmentalRemediationSiteAxis": {
     "auth_ref": [
      "r242",
      "r243",
      "r244",
      "r245",
      "r260"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location or named area designated for environmental remediation.",
        "label": "Environmental Remediation Site [Axis]"
       }
      }
     },
     "localname": "EnvironmentalRemediationSiteAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EnvironmentalRemediationSiteDomain": {
     "auth_ref": [
      "r242"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location or named area designated for environmental remediation.",
        "label": "Environmental Remediation Site [Domain]"
       }
      }
     },
     "localname": "EnvironmentalRemediationSiteDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r136",
      "r137",
      "r139",
      "r142",
      "r150",
      "r152",
      "r165",
      "r209",
      "r268",
      "r269",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r532",
      "r614",
      "r615",
      "r616"
     ],
     "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]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis": {
     "auth_ref": [
      "r138",
      "r145",
      "r146",
      "r149",
      "r150",
      "r151",
      "r152"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of error correction.",
        "label": "Error Correction, Type [Axis]"
       }
      }
     },
     "localname": "ErrorCorrectionsAndPriorPeriodAdjustmentsRestatementByRestatementPeriodAndAmountAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EscrowDepositsRelatedToPropertySales": {
     "auth_ref": [
      "r111",
      "r112",
      "r113"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Escrow deposits related to property sales in noncash investing and financing activities.",
        "label": "us-gaap_EscrowDepositsRelatedToPropertySales",
        "terseLabel": "Escrow Deposits Related to Property Sales"
       }
      }
     },
     "localname": "EscrowDepositsRelatedToPropertySales",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "auth_ref": [
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r363",
      "r517",
      "r559",
      "r560",
      "r561"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "auth_ref": [
      "r518"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueDisclosuresTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "auth_ref": [
      "r320",
      "r322",
      "r327",
      "r363",
      "r517",
      "r559"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueInputsLevel1Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "auth_ref": [
      "r320",
      "r322",
      "r327",
      "r363",
      "r517",
      "r560"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueInputsLevel2Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "auth_ref": [
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r363",
      "r517",
      "r561"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueInputsLevel3Member",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "auth_ref": [
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r363",
      "r559",
      "r560",
      "r561"
     ],
     "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]"
       }
      }
     },
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FinanceLeaseInterestExpense": {
     "auth_ref": [
      "r543",
      "r547",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": 2.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest expense on finance lease liability.",
        "label": "us-gaap_FinanceLeaseInterestExpense",
        "verboseLabel": "Interest on lease liabilities"
       }
      }
     },
     "localname": "FinanceLeaseInterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseInterestPaymentOnLiability": {
     "auth_ref": [
      "r545",
      "r551"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest paid on finance lease liability.",
        "label": "us-gaap_FinanceLeaseInterestPaymentOnLiability",
        "negatedLabel": "Operating cash flows from finance leases"
       }
      }
     },
     "localname": "FinanceLeaseInterestPaymentOnLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiability": {
     "auth_ref": [
      "r542",
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": 0.0,
       "parentTag": "nwpx_LeaseLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease.",
        "label": "Present value of lease liabilities, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityCurrent": {
     "auth_ref": [
      "r542"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.",
        "label": "Finance lease liabilities",
        "negatedLabel": "Current portion of lease liabilities, included in Accrued liabilities, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r542"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.",
        "label": "Long-term lease liabilities, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease.",
        "label": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
        "totalLabel": "Total lease payments, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 0.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid 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": "Thereafter, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 5.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "2021, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 2.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance 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": "2025, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance 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": "2024, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 4.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance 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": "2023, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 3.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance 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": "2022, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r556"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease.",
        "label": "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount",
        "negatedLabel": "Amount representing interest, finance leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeasePrincipalPayments": {
     "auth_ref": [
      "r544",
      "r551"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for principal payment on finance lease.",
        "label": "us-gaap_FinanceLeasePrincipalPayments",
        "negatedLabel": "Payments on finance lease liabilities",
        "negatedTerseLabel": "Financing cash flows from finance leases"
       }
      }
     },
     "localname": "FinanceLeasePrincipalPayments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAsset": {
     "auth_ref": [
      "r541"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": 0.0,
       "parentTag": "nwpx_LeaseRightOfUseAsset",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease.",
        "label": "Finance leases, net, included in Property and equipment"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization": {
     "auth_ref": [
      "r543",
      "r547"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated amortization of right-of-use asset from finance lease.",
        "label": "us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization",
        "terseLabel": "Finance Lease, Right-of-Use Asset, Accumulated Amortization"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAssetAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAssetAmortization": {
     "auth_ref": [
      "r543",
      "r547",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": 4.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease.",
        "label": "us-gaap_FinanceLeaseRightOfUseAssetAmortization",
        "verboseLabel": "Amortization of right-of-use assets"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAssetAmortization",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r554",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for finance lease calculated at point in time.",
        "label": "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent",
        "verboseLabel": "Finance leases, weighted-average discount rate"
       }
      }
     },
     "localname": "FinanceLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r553",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1",
        "verboseLabel": "Finance leases, weighted-average remaining lease term (Year)"
       }
      }
     },
     "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_FiniteLivedIntangibleAssetUsefulLife",
        "terseLabel": "Finite-Lived Intangible Asset, Useful Life (Year)"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r232"
     ],
     "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": "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization",
        "negatedLabel": "Intangible Assets, Accumulated amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "order": 2.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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r234"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "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 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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r234"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "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 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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r234"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "order": 0.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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r234"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "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 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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r234"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "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 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": "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
        "terseLabel": "2022"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r226",
      "r229",
      "r232",
      "r235",
      "r570",
      "r574"
     ],
     "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]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r232",
      "r574"
     ],
     "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": "Intangible Assets, Gross"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r226",
      "r231"
     ],
     "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]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r232",
      "r570"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details": {
       "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": "Intangible assets, net",
        "totalLabel": "Total amortization expense"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinitelivedIntangibleAssetsAcquired1": {
     "auth_ref": [
      "r227"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition.",
        "label": "Intangible Asset Acquired, Fair Value"
       }
      }
     },
     "localname": "FinitelivedIntangibleAssetsAcquired1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FireMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Oxidation process that releases energy in the form of light and heat (flames) and often creates smoke.",
        "label": "Fire [Member]"
       }
      }
     },
     "localname": "FireMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "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]"
       }
      }
     },
     "localname": "ForeignCountryMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months": {
     "auth_ref": [
      "r514"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The estimated net amount of unrealized gains or losses on foreign currency cash flow hedges at the reporting date expected to be reclassified to earnings within the next 12 months.",
        "label": "us-gaap_ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months",
        "terseLabel": "Foreign Currency Cash Flow Hedge Gain (Loss) to be Reclassified During Next 12 Months"
       }
      }
     },
     "localname": "ForeignCurrencyCashFlowHedgeGainLossToBeReclassifiedDuringNext12Months",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionGainLossRealized": {
     "auth_ref": [
      "r523",
      "r524"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before tax of foreign currency transaction realized gain (loss) recognized in the income statement.",
        "label": "us-gaap_ForeignCurrencyTransactionGainLossRealized",
        "terseLabel": "Foreign Currency Transaction Gain (Loss), Realized"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionGainLossRealized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "auth_ref": [
      "r115",
      "r533"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]"
       }
      }
     },
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ForeignExchangeForwardMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Foreign exchange forward traded on an exchange (examples include but are not limited to the International Securities Exchange, Philadelphia Stock Exchange, or the Chicago Mercantile Exchange) for options or future contracts to buy or sell a certain currency, at a specified date, at a fixed exercise exchange rate.",
        "label": "Foreign Exchange Forward [Member]"
       }
      }
     },
     "localname": "ForeignExchangeForwardMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "auth_ref": [
      "r106"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.",
        "label": "us-gaap_GainLossOnSaleOfPropertyPlantEquipment",
        "terseLabel": "Gain (Loss) on Disposition of Property Plant Equipment, Total"
       }
      }
     },
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r220",
      "r221",
      "r575"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 4.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": "Goodwill",
        "periodStartLabel": "Goodwill",
        "verboseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r222"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.",
        "label": "Acquisition of Geneva (Note 3)"
       }
      }
     },
     "localname": "GoodwillAcquiredDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r236"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "auth_ref": [
      "r115",
      "r223"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsIntangibleAssetsPolicy": {
     "auth_ref": [
      "r115",
      "r230"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for intangible assets. This accounting policy may address both intangible assets subject to amortization and those that are not. The following also may be disclosed: (1) a description of intangible assets (2) the estimated useful lives of those assets (3) the amortization method used (4) how the entity assesses and measures impairment of such assets (5) how future cash flows are estimated (6) how the fair values of such asset are determined.",
        "label": "Goodwill and Intangible Assets, Intangible Assets, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsIntangibleAssetsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r86",
      "r118",
      "r182",
      "r184",
      "r187",
      "r190",
      "r192",
      "r205",
      "r522"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "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": "us-gaap_GrossProfit",
        "totalLabel": "Gross profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_HedgingDesignationAxis": {
     "auth_ref": [
      "r500",
      "r511"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Axis]"
       }
      }
     },
     "localname": "HedgingDesignationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_HedgingDesignationDomain": {
     "auth_ref": [
      "r500"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designation of purpose of derivative instrument.",
        "label": "Hedging Designation [Domain]"
       }
      }
     },
     "localname": "HedgingDesignationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r123",
      "r456"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.",
        "label": "United States"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r123",
      "r456"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details": {
       "order": 0.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.",
        "label": "Foreign"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r123",
      "r182",
      "r184",
      "r187",
      "r190",
      "r192"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
        "totalLabel": "Income before income taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis": {
     "auth_ref": [
      "r370",
      "r376"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of disposal group.",
        "label": "Disposal Group Name [Axis]"
       }
      }
     },
     "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r240"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r427"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "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]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r425",
      "r431",
      "r438",
      "r451",
      "r458",
      "r460",
      "r461",
      "r462"
     ],
     "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]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r119",
      "r151",
      "r152",
      "r181",
      "r423",
      "r452",
      "r459",
      "r607"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 0.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "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)",
        "negatedLabel": "Tax (expense) benefit",
        "totalLabel": "Total income tax expense (benefit)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r78",
      "r115",
      "r419",
      "r420",
      "r431",
      "r432",
      "r437",
      "r445",
      "r627"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 8.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to increase (decrease) in the valuation allowance for deferred tax assets.",
        "label": "Change in valuation allowance"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationForeignIncomeTaxRateDifferential": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to foreign income tax expense (benefit).",
        "label": "Foreign rate differential"
       }
      }
     },
     "localname": "IncomeTaxReconciliationForeignIncomeTaxRateDifferential",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Income tax expense at federal statutory rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationNondeductibleExpense": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 5.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.",
        "label": "Nondeductible expenses"
       }
      }
     },
     "localname": "IncomeTaxReconciliationNondeductibleExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherAdjustments": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 7.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.",
        "label": "us-gaap_IncomeTaxReconciliationOtherAdjustments",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r424"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details": {
       "order": 0.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).",
        "label": "State expense (benefit), net of federal income tax effect"
       }
      }
     },
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "auth_ref": [
      "r110"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.",
        "label": "Cash paid (received) during the period for income taxes (net of refunds of $153, $286 and $1)"
       }
      }
     },
     "localname": "IncomeTaxesPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the amount due from customers for the credit sale of goods and services; includes accounts receivable and other types of receivables.",
        "label": "us-gaap_IncreaseDecreaseInAccountsAndOtherReceivables",
        "negatedTerseLabel": "Trade and other receivables"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsAndOtherReceivables",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 10.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": "us-gaap_IncreaseDecreaseInAccountsPayable",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in accrued expenses, and obligations classified as other.",
        "label": "us-gaap_IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
        "terseLabel": "Accrued and other liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.",
        "label": "us-gaap_IncreaseDecreaseInContractWithCustomerAsset",
        "negatedLabel": "Contract assets, net"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 0.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": "us-gaap_IncreaseDecreaseInInventories",
        "negatedTerseLabel": "Inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 13.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": "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
        "negatedTerseLabel": "Prepaid expenses and other assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestCostsCapitalized": {
     "auth_ref": [
      "r535"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest capitalized during the period.",
        "label": "us-gaap_InterestCostsCapitalized",
        "terseLabel": "Interest Costs Capitalized"
       }
      }
     },
     "localname": "InterestCostsCapitalized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r81",
      "r180",
      "r534",
      "r537",
      "r588"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "us-gaap_InterestExpense",
        "negatedLabel": "Interest expense"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r100",
      "r103",
      "r110"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
        "label": "Cash paid during the period for interest, net of amounts capitalized"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "auth_ref": [
      "r219"
     ],
     "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]"
       }
      }
     },
     "localname": "InventoryDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "auth_ref": [
      "r34",
      "r218"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details": {
       "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": "Finished goods"
       }
      }
     },
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r7",
      "r56"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details": {
       "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": "Inventories",
        "totalLabel": "Total inventories"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r14",
      "r57",
      "r115",
      "r164",
      "r215",
      "r216",
      "r219"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.",
        "label": "Inventory, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "InventoryPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "auth_ref": [
      "r36",
      "r218"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details": {
       "order": 0.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": "Raw materials"
       }
      }
     },
     "localname": "InventoryRawMaterialsNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventorySuppliesNetOfReserves": {
     "auth_ref": [
      "r55",
      "r217"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details": {
       "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 products used directly or indirectly in the manufacturing or production process, which may or may not become part of the final product. May also include items used in the storage, presentation or transportation of physical goods.",
        "label": "Supplies"
       }
      }
     },
     "localname": "InventorySuppliesNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "auth_ref": [
      "r35",
      "r218"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details": {
       "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": "Work-in-process"
       }
      }
     },
     "localname": "InventoryWorkInProcessNetOfReserves",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InvestmentIncomeInterestAndDividend": {
     "auth_ref": [
      "r89"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accretion (amortization) of purchase discount (premium) of interest income and dividend income on nonoperating securities.",
        "label": "Interest income"
       }
      }
     },
     "localname": "InvestmentIncomeInterestAndDividend",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LandImprovementsMember": {
     "auth_ref": [
      "r10"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to real estate held.",
        "label": "Land Improvements [Member]"
       }
      }
     },
     "localname": "LandImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r555",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lease cost recognized by lessee for lease contract.",
        "label": "us-gaap_LeaseCost",
        "totalLabel": "Total lease cost"
       }
      }
     },
     "localname": "LeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r555"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
        "label": "Lease, Cost [Table Text Block]"
       }
      }
     },
     "localname": "LeaseCostTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
        "totalLabel": "Total lease payments, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "order": 0.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 due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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 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": "2021, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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 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": "2025, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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 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": "2024, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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 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": "2023, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r556"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details": {
       "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 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": "2022, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r556"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
        "negatedLabel": "Amount representing interest, operating leases"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.",
        "label": "us-gaap_LettersOfCreditOutstandingAmount",
        "terseLabel": "Letters of Credit Outstanding, Amount"
       }
      }
     },
     "localname": "LettersOfCreditOutstandingAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r47",
      "r118",
      "r186",
      "r205",
      "r489",
      "r493",
      "r494",
      "r522"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.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": "us-gaap_Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r32",
      "r118",
      "r205",
      "r522",
      "r582",
      "r599"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "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": "us-gaap_LiabilitiesAndStockholdersEquity",
        "totalLabel": "Total liabilities and stockholders\u2019 equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r49",
      "r118",
      "r205",
      "r489",
      "r493",
      "r494",
      "r522"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 3.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": "us-gaap_LiabilitiesCurrent",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCredit": {
     "auth_ref": [
      "r20",
      "r581",
      "r592"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.",
        "label": "us-gaap_LineOfCredit",
        "terseLabel": "Long-term Line of Credit, Total"
       }
      }
     },
     "localname": "LineOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityAxis": {
     "auth_ref": [
      "r45",
      "r121"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit.",
        "label": "Lender Name [Axis]"
       }
      }
     },
     "localname": "LineOfCreditFacilityAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCreditFacilityLenderDomain": {
     "auth_ref": [
      "r45"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility.",
        "label": "Line of Credit Facility, Lender [Domain]"
       }
      }
     },
     "localname": "LineOfCreditFacilityLenderDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r45"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity",
        "terseLabel": "Line of Credit Facility, Maximum Borrowing Capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": {
     "auth_ref": [
      "r45"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).",
        "label": "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity",
        "terseLabel": "Line of Credit Facility, Remaining Borrowing Capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityRemainingBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.",
        "label": "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
        "terseLabel": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage"
       }
      }
     },
     "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LondonInterbankOfferedRateLIBORMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate at which a bank borrows funds from other banks in the London interbank market.",
        "label": "London Interbank Offered Rate (LIBOR) [Member]"
       }
      }
     },
     "localname": "LondonInterbankOfferedRateLIBORMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LongTermDebt": {
     "auth_ref": [
      "r20",
      "r266",
      "r581",
      "r596"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "us-gaap_LongTermDebt",
        "terseLabel": "Long-term Debt, Total"
       }
      }
     },
     "localname": "LongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtCurrent": {
     "auth_ref": [
      "r46"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Current portion of long-term debt",
        "negatedLabel": "Less: Current portion of long-term debt"
       }
      }
     },
     "localname": "LongTermDebtCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "auth_ref": [
      "r126",
      "r264"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details": {
       "order": 0.0,
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and 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": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
        "verboseLabel": "2021"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "auth_ref": [
      "r126",
      "r264"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details": {
       "order": 2.0,
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
        "verboseLabel": "2023"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "auth_ref": [
      "r126",
      "r264"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details": {
       "order": 1.0,
       "parentTag": "us-gaap_DebtInstrumentCarryingAmount",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing 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": "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
        "verboseLabel": "2022"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "auth_ref": [
      "r50"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Long-term debt",
        "terseLabel": "Long-term debt, net of current portion"
       }
      }
     },
     "localname": "LongTermDebtNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingenciesByNatureOfContingencyAxis": {
     "auth_ref": [
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r262",
      "r263"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur.",
        "label": "Loss Contingency Nature [Axis]"
       }
      }
     },
     "localname": "LossContingenciesByNatureOfContingencyAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LossContingencyAccrualCarryingValueCurrent": {
     "auth_ref": [
      "r253"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of loss contingency liability expected to be resolved within one year or the normal operating cycle, if longer.",
        "label": "us-gaap_LossContingencyAccrualCarryingValueCurrent",
        "terseLabel": "Loss Contingency, Accrual, Current"
       }
      }
     },
     "localname": "LossContingencyAccrualCarryingValueCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingencyNatureDomain": {
     "auth_ref": [
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r258",
      "r259",
      "r262",
      "r263"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "An existing condition, situation, or set of circumstances involving uncertainty as to possible loss to an enterprise that will ultimately be resolved when one or more future events occur or fail to occur. Resolution of the uncertainty may confirm the incurrence of a loss or impairment of an asset or the incurrence of a liability.",
        "label": "Loss Contingency, Nature [Domain]"
       }
      }
     },
     "localname": "LossContingencyNatureDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.",
        "label": "Machinery and Equipment [Member]"
       }
      }
     },
     "localname": "MachineryAndEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r102"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 0.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": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
        "totalLabel": "Net cash provided by (used in) financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r102"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "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": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
        "totalLabel": "Net cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations": {
     "auth_ref": [
      "r102"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 0.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) of investing activities, excluding 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": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
        "totalLabel": "Net cash used in investing activities from continuing operations"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r102",
      "r104",
      "r107"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "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": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
        "totalLabel": "Net cash provided by (used in) operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cash flows from operating activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r3",
      "r72",
      "r75",
      "r82",
      "r107",
      "r118",
      "r141",
      "r145",
      "r146",
      "r147",
      "r148",
      "r151",
      "r152",
      "r156",
      "r182",
      "r184",
      "r187",
      "r190",
      "r192",
      "r205",
      "r522",
      "r584",
      "r603"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income": {
       "order": 0.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "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",
        "totalLabel": "Net income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncatastrophicEventAxis": {
     "auth_ref": [
      "r608"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of noncatastrophic event causing change in the insurer's provision.",
        "label": "Noncatastrophic Event [Axis]"
       }
      }
     },
     "localname": "NoncatastrophicEventAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NoncatastrophicEventDomain": {
     "auth_ref": [
      "r608"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Noncatastrophic event causing change in the insurer's provision.",
        "label": "Noncatastrophic Event [Domain]"
       }
      }
     },
     "localname": "NoncatastrophicEventDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NondesignatedMember": {
     "auth_ref": [
      "r500"
     ],
     "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]"
       }
      }
     },
     "localname": "NondesignatedMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NumberOfOperatingSegments": {
     "auth_ref": [
      "r177"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.",
        "label": "us-gaap_NumberOfOperatingSegments",
        "terseLabel": "Number of Operating Segments"
       }
      }
     },
     "localname": "NumberOfOperatingSegments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OciBeforeReclassificationsNetOfTaxAttributableToParent": {
     "auth_ref": [
      "r70",
      "r79"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax, before reclassification adjustments, of other comprehensive income (loss), attributable to parent.",
        "label": "Other comprehensive loss before reclassifications"
       }
      }
     },
     "localname": "OciBeforeReclassificationsNetOfTaxAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [
      "r182",
      "r184",
      "r187",
      "r190",
      "r192"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 2.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": "us-gaap_OperatingIncomeLoss",
        "totalLabel": "Operating income (loss)"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r548",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": 3.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "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": "us-gaap_OperatingLeaseCost",
        "verboseLabel": "Operating lease cost"
       }
      }
     },
     "localname": "OperatingLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r542"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": 1.0,
       "parentTag": "nwpx_LeaseLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Present value of lease liabilities, operating leases",
        "terseLabel": "Operating Lease, Liability, Total"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r542"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 4.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": "Current portion of operating lease liabilities",
        "negatedLabel": "Current portion of lease liabilities, operating leases"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r542"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.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": "Long-term lease liabilities, operating leases"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r546",
      "r551"
     ],
     "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": "us-gaap_OperatingLeasePayments",
        "negatedLabel": "Operating cash flows from operating leases"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r541"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details": {
       "order": 1.0,
       "parentTag": "nwpx_LeaseRightOfUseAsset",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating leases, Right-of-use assets",
        "terseLabel": "Operating Lease, Right-of-Use Asset"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r554",
      "r557"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent",
        "verboseLabel": "Operating leases, weighted-average discount rate"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r553",
      "r557"
     ],
     "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": "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1",
        "verboseLabel": "Operating leases, weighted-average remaining lease term (Year)"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingLeasesRentExpenseNet": {
     "auth_ref": [
      "r539"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rental expense for the reporting period incurred under operating leases, including minimum and any contingent rent expense, net of related sublease income.",
        "label": "us-gaap_OperatingLeasesRentExpenseNet",
        "terseLabel": "Operating Leases, Rent Expense, Net, Total"
       }
      }
     },
     "localname": "OperatingLeasesRentExpenseNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r439"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
        "label": "us-gaap_OperatingLossCarryforwards",
        "terseLabel": "Operating Loss Carryforwards, Total"
       }
      }
     },
     "localname": "OperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock": {
     "auth_ref": [
      "r5",
      "r495"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for organization, consolidation and basis of presentation of financial statements disclosure.",
        "label": "Organization, Consolidation and Presentation of Financial Statements Disclosure [Text Block]"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r11",
      "r12",
      "r13",
      "r48"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "us-gaap_OtherAccruedLiabilitiesCurrent",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherAccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsMember": {
     "auth_ref": [
      "r502",
      "r513"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing other assets.",
        "label": "Other Assets [Member]"
       }
      }
     },
     "localname": "OtherAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 3.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"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r64",
      "r66",
      "r486",
      "r491"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income": {
       "order": 1.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax and reclassification adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan, attributable to parent.",
        "label": "us-gaap_OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent",
        "negatedLabel": "Pension liability adjustment"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeDefinedBenefitPlansAdjustmentNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent": {
     "auth_ref": [
      "r66"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income": {
       "order": 0.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after tax and reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness, attributable to parent.",
        "label": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent",
        "terseLabel": "Unrealized gain (loss) on cash flow hedges"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTaxParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax": {
     "auth_ref": [
      "r62"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax and 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": "Unrealized gain (loss) on cash flow hedges, net of tax expense/benefit"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossDerivativesQualifyingAsHedgesNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "auth_ref": [
      "r73",
      "r76",
      "r486",
      "r487",
      "r491"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income": {
       "order": 1.0,
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0
      },
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.",
        "label": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
        "totalLabel": "Other comprehensive loss, net of tax"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Other comprehensive income (loss), net of tax:"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax": {
     "auth_ref": [
      "r64",
      "r67",
      "r486"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after reclassification adjustment, of tax (expense) benefit for (increase) decrease in accumulated other comprehensive income of defined benefit plan.",
        "label": "Pension liability adjustment, tax expense/benefit"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax": {
     "auth_ref": [
      "r62",
      "r67"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax expense (benefit), before reclassification adjustments, related to 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": "Unrealized gain (loss) on cash flow hedges, tax expense/benefit"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeUnrealizedGainLossOnDerivativesArisingDuringPeriodTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intangible assets classified as other.",
        "label": "Other Intangible Assets [Member]"
       }
      }
     },
     "localname": "OtherIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r51"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.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 long-term liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNoncashIncomeExpense": {
     "auth_ref": [
      "r107"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other.",
        "label": "us-gaap_OtherNoncashIncomeExpense",
        "negatedLabel": "Other, net"
       }
      }
     },
     "localname": "OtherNoncashIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherNoncurrentAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing other noncurrent assets.",
        "label": "Other Noncurrent Assets [Member]"
       }
      }
     },
     "localname": "OtherNoncurrentAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 0.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 income",
        "terseLabel": "Other income (loss)"
       }
      }
     },
     "localname": "OtherNonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "auth_ref": [
      "r99"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.",
        "label": "us-gaap_PaymentsOfDebtIssuanceCosts",
        "negatedLabel": "Payments of debt issuance costs"
       }
      }
     },
     "localname": "PaymentsOfDebtIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [
      "r97"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 0.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
        "negatedLabel": "Tax withholdings related to net share settlements of restricted stock and performance share awards"
       }
      }
     },
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r94"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.",
        "label": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired",
        "negatedLabel": "Acquisition of business, net of cash acquired"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireIntangibleAssets": {
     "auth_ref": [
      "r95"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow to acquire asset without physical form usually arising from contractual or other legal rights, excluding goodwill.",
        "label": "us-gaap_PaymentsToAcquireIntangibleAssets",
        "negatedLabel": "Purchases of intangible assets"
       }
      }
     },
     "localname": "PaymentsToAcquireIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r95"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "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": "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment",
        "negatedLabel": "Purchases of property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "auth_ref": [
      "r319",
      "r321",
      "r327",
      "r344",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r363",
      "r365",
      "r367",
      "r368",
      "r381"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for retirement benefits.",
        "label": "Retirement Benefits [Text Block]"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r297",
      "r318",
      "r580",
      "r595"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans.",
        "label": "us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent",
        "terseLabel": "Liability, Defined Benefit Plan, Total"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementPlansPensionsPolicy": {
     "auth_ref": [
      "r115",
      "r351",
      "r366",
      "r368",
      "r374"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for pension plans. This accounting policy may address (1) the types of plans sponsored by the entity (2) groups that participate in (or are covered by) each plan (3) how plan assets, liabilities and expenses are measured, including the use of any actuaries and (4) significant assumptions used by the entity to value plan assets and liabilities and how such assumptions are derived.",
        "label": "Pension and Other Postretirement Plans, Pensions, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementPlansPensionsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PensionPlansDefinedBenefitMember": {
     "auth_ref": [
      "r294",
      "r296",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r345",
      "r348",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r368",
      "r369",
      "r376",
      "r377",
      "r378",
      "r379"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan designed to provide participant with pension benefits. Includes, but is not limited to, defined benefit and defined contribution plans. Excludes other postretirement benefits.",
        "label": "Pension Plan [Member]"
       }
      }
     },
     "localname": "PensionPlansDefinedBenefitMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PerformanceSharesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based payment arrangement awarded for meeting performance target.",
        "label": "Performance Shares [Member]"
       }
      }
     },
     "localname": "PerformanceSharesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PolicyTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_PolicyTextBlockAbstract",
        "terseLabel": "Accounting Policies"
       }
      }
     },
     "localname": "PolicyTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Preferred stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Preferred stock, shares authorized (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Preferred stock, shares issued (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r24"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Preferred stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r24"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Preferred stock, $.01 par value, 10,000,000 shares authorized, none issued or outstanding"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r8",
      "r37",
      "r38"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.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 expenses and other"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PriorPeriodReclassificationAdjustmentDescription": {
     "auth_ref": [
      "r0"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for reclassification affecting comparability of financial statement. Excludes amendment to accounting standards, other change in accounting principle, and correction of error.",
        "label": "Reclassification, Comparability Adjustment [Policy Text Block]"
       }
      }
     },
     "localname": "PriorPeriodReclassificationAdjustmentDescription",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ProceedsFromIncomeTaxRefunds": {
     "auth_ref": [
      "r104",
      "r110"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash received during the period as refunds for the overpayment of taxes.",
        "label": "Tax refunds"
       }
      }
     },
     "localname": "ProceedsFromIncomeTaxRefunds",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromInsuranceSettlementInvestingActivities": {
     "auth_ref": [
      "r93",
      "r101"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 0.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow for proceeds from settlement of insurance claim, classified as investing activities. Excludes insurance settlement classified as operating activities.",
        "label": "Proceeds from insurance"
       }
      }
     },
     "localname": "ProceedsFromInsuranceSettlementInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfLongTermDebt": {
     "auth_ref": [
      "r96"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from a debt initially having maturity due after one year or beyond the operating cycle, if longer.",
        "label": "Borrowings on long-term debt"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfLongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "auth_ref": [
      "r96",
      "r122"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Borrowings on line of credit"
       }
      }
     },
     "localname": "ProceedsFromLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "auth_ref": [
      "r92"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivitiesContinuingOperations",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.",
        "label": "Proceeds from sale of property and equipment",
        "terseLabel": "Proceeds from Sale of Property, Plant, and Equipment, Total"
       }
      }
     },
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r42",
      "r239"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Long-Lived Tangible Asset [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r241",
      "r628",
      "r629",
      "r630"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r41",
      "r237"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details": {
       "order": 1.0,
       "parentTag": "nwpx_PropertyPlantAndEquipmentNetExcludingConstructionInProgress",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.",
        "label": "Property and equipment, gross"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r16",
      "r17",
      "r239",
      "r601"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 0.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 and equipment, net",
        "terseLabel": "Property, Plant and Equipment, Net, Ending Balance"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r40",
      "r115",
      "r239",
      "r628",
      "r629"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r16",
      "r239"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table Text Block]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r16",
      "r237"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Long-Lived Tangible Asset [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "us-gaap_PropertyPlantAndEquipmentUsefulLife",
        "terseLabel": "Property, Plant and Equipment, Useful Life (Year)"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ReceivablesNetCurrent": {
     "auth_ref": [
      "r26",
      "r33",
      "r600",
      "r625"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value.",
        "label": "Trade and other receivables, less allowance for doubtful accounts of $767 and $801"
       }
      }
     },
     "localname": "ReceivablesNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesPolicyTextBlock": {
     "auth_ref": [
      "r115",
      "r199",
      "r202",
      "r203",
      "r204"
     ],
     "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]"
       }
      }
     },
     "localname": "ReceivablesPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent": {
     "auth_ref": [
      "r70",
      "r79"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details": {
       "order": 0.0,
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after tax of reclassification adjustments of other comprehensive income (loss) attributable to parent.",
        "label": "us-gaap_ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent",
        "negatedLabel": "Amounts reclassified from Accumulated other comprehensive loss"
       }
      }
     },
     "localname": "ReclassificationFromAociCurrentPeriodNetOfTaxAttributableToParent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by item reclassified out of accumulated other comprehensive income (loss).",
        "label": "Reclassification out of Accumulated Other Comprehensive Income [Axis]"
       }
      }
     },
     "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Item reclassified out of accumulated other comprehensive income (loss).",
        "label": "Reclassification out of Accumulated Other Comprehensive Income [Domain]"
       }
      }
     },
     "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies item reclassified out of accumulated other comprehensive income (loss).",
        "label": "Reclassification out of Accumulated Other Comprehensive Income [Member]"
       }
      }
     },
     "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of information about items reclassified out of accumulated other comprehensive income (loss).",
        "label": "Reclassification out of Accumulated Other Comprehensive Income [Table Text Block]"
       }
      }
     },
     "localname": "ReclassificationOutOfAccumulatedOtherComprehensiveIncomeTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RepaymentsOfLinesOfCredit": {
     "auth_ref": [
      "r98",
      "r122"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "us-gaap_RepaymentsOfLinesOfCredit",
        "negatedLabel": "Repayments on line of credit"
       }
      }
     },
     "localname": "RepaymentsOfLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "auth_ref": [
      "r98"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.",
        "label": "us-gaap_RepaymentsOfLongTermDebt",
        "negatedLabel": "Payments on long-term debt"
       }
      }
     },
     "localname": "RepaymentsOfLongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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]"
       }
      }
     },
     "localname": "RestrictedStockUnitsRSUMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "auth_ref": [
      "r249"
     ],
     "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]"
       }
      }
     },
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestructuringCharges": {
     "auth_ref": [
      "r106",
      "r246",
      "r247",
      "r248"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 2.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 expense",
        "terseLabel": "Restructuring Charges, Total"
       }
      }
     },
     "localname": "RestructuringCharges",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of restructuring cost.",
        "label": "Restructuring Type [Axis]"
       }
      }
     },
     "localname": "RestructuringCostAndReserveAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r28",
      "r269",
      "r413",
      "r598",
      "r618",
      "r623"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "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"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r136",
      "r137",
      "r139",
      "r142",
      "r150",
      "r152",
      "r209",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450",
      "r614",
      "r616"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetirementPlanTypeAxis": {
     "auth_ref": [
      "r294",
      "r295",
      "r296",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r345",
      "r348",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r376",
      "r377",
      "r378",
      "r379"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of retirement benefit plan. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement.",
        "label": "Retirement Plan Type [Axis]"
       }
      }
     },
     "localname": "RetirementPlanTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RetirementPlanTypeDomain": {
     "auth_ref": [
      "r294",
      "r295",
      "r296",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r304",
      "r305",
      "r306",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r312",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r319",
      "r320",
      "r322",
      "r323",
      "r324",
      "r325",
      "r326",
      "r327",
      "r328",
      "r329",
      "r330",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r342",
      "r343",
      "r345",
      "r348",
      "r352",
      "r353",
      "r354",
      "r355",
      "r356",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r376",
      "r377",
      "r378",
      "r379"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of plan designed to provide participants with retirement benefits. Includes, but is not limited to, retirement benefit arrangement for defined benefit pension and other postretirement plans, retirement benefit arrangement for defined contribution pension and other postretirement plans, and special and contractual termination benefits payable upon retirement.",
        "label": "Retirement Plan Type [Domain]"
       }
      }
     },
     "localname": "RetirementPlanTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "auth_ref": [
      "r178",
      "r179",
      "r183",
      "r188",
      "r189",
      "r193",
      "r194",
      "r197",
      "r284",
      "r285",
      "r569"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.",
        "label": "Net sales",
        "terseLabel": "Revenue from Contract with Customer, Including Assessed Tax"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "auth_ref": [
      "r274",
      "r275",
      "r276",
      "r277",
      "r278",
      "r279",
      "r282",
      "r283",
      "r288",
      "r292"
     ],
     "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]"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock": {
     "auth_ref": [
      "r196"
     ],
     "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]"
       }
      }
     },
     "localname": "RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r116",
      "r117"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.",
        "label": "Revenue [Policy Text Block]"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "auth_ref": [
      "r280"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "us-gaap_RevenueRemainingPerformanceObligation",
        "terseLabel": "Revenue, Remaining Performance Obligation, Amount"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r281"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period (Year)"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r281"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in CCYY-MM-DD format.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationPercentage": {
     "auth_ref": [
      "r281"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.",
        "label": "us-gaap_RevenueRemainingPerformanceObligationPercentage",
        "terseLabel": "Revenue, Remaining Performance Obligation, Percentage"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationPercentage",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.",
        "label": "Revolving Credit Facility [Member]"
       }
      }
     },
     "localname": "RevolvingCreditFacilityMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability": {
     "auth_ref": [
      "r552",
      "r557"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for finance lease liability.",
        "label": "Right-of-use assets obtained in exchange for finance lease liabilities"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r552",
      "r557"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.",
        "label": "Right-of-use assets obtained in exchange for operating lease liabilities"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [
      "r172",
      "r197"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.",
        "label": "Revenue Benchmark [Member]"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock": {
     "auth_ref": [
      "r70",
      "r531",
      "r532"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accumulated other comprehensive income (loss).",
        "label": "Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": {
     "auth_ref": [
      "r226"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.",
        "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": {
     "auth_ref": [
      "r469",
      "r470"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table  does not include leveraged buyouts.",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r445"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r436"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r159"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r424"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "auth_ref": [
      "r384",
      "r402",
      "r414"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "auth_ref": [
      "r516",
      "r517"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r226",
      "r231"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r223",
      "r224"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "auth_ref": [
      "r123"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.",
        "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "auth_ref": [
      "r264"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.",
        "label": "Schedule of Maturities of Long-term Debt [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "auth_ref": [
      "r430",
      "r446"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits.",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]"
       }
      }
     },
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r231"
     ],
     "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]"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r88"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations": {
       "order": 0.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"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpensesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.",
        "label": "Selling, General and Administrative Expenses [Member]"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpensesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r105"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "us-gaap_ShareBasedCompensation",
        "terseLabel": "Share-based compensation expense"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r387"
     ],
     "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Month)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r394"
     ],
     "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
        "negatedLabel": "Unvested RSUs and PSAs canceled (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r398"
     ],
     "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": "Unvested RSUs and PSAs canceled, weighted average grant date fair value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r396"
     ],
     "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": "RSUs and PSAs granted (in shares)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r396"
     ],
     "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": "RSUs and PSAs granted, weighted average grant date fair value (in dollars per share)",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r395"
     ],
     "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
        "periodEndLabel": "Unvested RSUs and PSAs (in shares)",
        "periodStartLabel": "Unvested RSUs and PSAs (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r395"
     ],
     "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": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
        "periodEndLabel": "Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)",
        "periodStartLabel": "Unvested RSUs and PSAs, weighted average grant date fair value (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r397"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
        "negatedLabel": "RSUs and PSAs vested (2) (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "auth_ref": [
      "r400"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r397"
     ],
     "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": "RSUs and PSAs vested (2) (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r400"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r392"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Net number of share options (or share units) granted during the period.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Net of Forfeitures, Total (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r391",
      "r405"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r383",
      "r389"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Award Type [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "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": "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
        "terseLabel": "Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r115",
      "r386",
      "r390"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.",
        "label": "Share-based Payment Arrangement [Policy Text Block]"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued": {
     "auth_ref": [
      "r392"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of shares or units of entity securities issued in the transaction in which equity securities were issued to pay for goods or nonemployee services.",
        "label": "us-gaap_ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued",
        "terseLabel": "Share-based Goods and Nonemployee Services Transaction, Quantity of Securities Issued (in shares)"
       }
      }
     },
     "localname": "ShareBasedGoodsAndNonemployeeServicesTransactionQuantityOfSecuritiesIssued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": {
     "auth_ref": [
      "r388"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period (Year)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.",
        "label": "us-gaap_SharesOutstanding",
        "periodEndLabel": "Balances (in shares)",
        "periodStartLabel": "Balances (in shares)"
       }
      }
     },
     "localname": "SharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShortTermLeaseCost": {
     "auth_ref": [
      "r549",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": 0.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less.",
        "label": "us-gaap_ShortTermLeaseCost",
        "verboseLabel": "Short-term lease cost"
       }
      }
     },
     "localname": "ShortTermLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r135"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity.",
        "label": "State and Local Jurisdiction [Member]"
       }
      }
     },
     "localname": "StateAndLocalJurisdictionMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r54",
      "r136",
      "r137",
      "r139",
      "r142",
      "r150",
      "r152",
      "r165",
      "r209",
      "r268",
      "r269",
      "r410",
      "r411",
      "r412",
      "r449",
      "r450",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r532",
      "r614",
      "r615",
      "r616"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details"
     ],
     "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]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "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]"
       }
      }
     },
     "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]"
       }
      }
     },
     "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]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r136",
      "r137",
      "r139",
      "r165",
      "r569"
     ],
     "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]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-comprehensive-income",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization",
      "http://www.nwpipe.com/20201231/role/statement-note-1-organization-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-assets-and-liabilities-measured-at-fair-value-on-recurring-basis-details",
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities",
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans",
      "http://www.nwpipe.com/20201231/role/statement-note-12-retirement-plans-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-rsu-and-psa-activity-details",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies",
      "http://www.nwpipe.com/20201231/role/statement-note-14-commitments-and-contingencies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-2-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-net-sales-from-continuing-operations-by-geographic-region-details",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-effective-income-tax-rate-reconciliation-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-income-loss-from-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-components-of-income-tax-expense-for-continuing-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-current-and-noncurrent-deferred-tax-assets-and-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-reclassification-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-summary-of-accumulated-other-comprehensive-loss-details-parentheticals",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-assets-acquired-and-liabilities-assumed-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-pro-forma-summary-details",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-4-discontinued-operations-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-components-of-inventories-details",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-property-plant-and-equipment-details",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-schedule-of-goodwill-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-estimated-amortization-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-future-principal-payments-of-longterm-debt-details",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-future-maturities-of-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-terms-and-discount-rates-for-lease-liabilities-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-leases-recorded-on-the-consolidated-balance-sheet-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-other-information-related-to-operating-and-finance-leases-details",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
      "http://www.nwpipe.com/20201231/role/statement-note13-sharebased-compensation-sharebased-compensation-expense-details",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details",
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": {
     "auth_ref": [
      "r24",
      "r25",
      "r268",
      "r269"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).",
        "label": "Issuance of common stock under stock compensation plans (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r24",
      "r25",
      "r268",
      "r269",
      "r393"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-details-textual"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": {
     "auth_ref": [
      "r24",
      "r25",
      "r269",
      "r385",
      "r399"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).",
        "label": "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation",
        "negatedLabel": "Issuance of common stock under stock compensation plans"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r25",
      "r30",
      "r31",
      "r118",
      "r201",
      "r205",
      "r522"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets": {
       "order": 1.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": "us-gaap_StockholdersEquity",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "terseLabel": "Stockholders' Equity Attributable to Parent, Ending Balance",
        "totalLabel": "Total stockholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets",
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-components-of-accumulated-other-comprehensive-loss-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders\u2019 equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-balance-sheets"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental disclosure of cash flow information:"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-cash-flows"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "us-gaap_TableTextBlock",
        "terseLabel": "Notes Tables"
       }
      }
     },
     "localname": "TableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-10-fair-value-measurements-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-13-sharebased-compensation-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-17-accumulated-other-comprehensive-loss-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-5-inventories-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-6-property-and-equipment-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-tables",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-tables",
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-tables"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardAmount": {
     "auth_ref": [
      "r439"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of the tax credit carryforward, before tax effects, available to reduce future taxable income under enacted tax laws.",
        "label": "us-gaap_TaxCreditCarryforwardAmount",
        "terseLabel": "Tax Credit Carryforward, Amount"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAmount",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "auth_ref": [
      "r440"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by specific tax credit related to an unused tax credit.",
        "label": "Tax Credit Carryforward [Axis]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "auth_ref": [
      "r440"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name of the tax credit carryforward.",
        "label": "Tax Credit Carryforward, Name [Domain]"
       }
      }
     },
     "localname": "TaxCreditCarryforwardNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes",
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect": {
     "auth_ref": [
      "r68"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in accumulated other comprehensive income (AOCI) for reclassification to retained earnings of tax effect from remeasurement of deferred tax pursuant to Tax Cuts and Jobs Act.",
        "label": "us-gaap_TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect",
        "terseLabel": "Tax Cuts and Jobs Act, Reclassification from AOCI to Retained Earnings, Tax Effect"
       }
      }
     },
     "localname": "TaxCutsAndJobsActOf2017ReclassificationFromAociToRetainedEarningsTaxEffect",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_TimingOfTransferOfGoodOrServiceAxis": {
     "auth_ref": [
      "r285",
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by timing of transfer of good or service to customer.",
        "label": "Timing of Transfer of Good or Service [Axis]"
       }
      }
     },
     "localname": "TimingOfTransferOfGoodOrServiceAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TimingOfTransferOfGoodOrServiceDomain": {
     "auth_ref": [
      "r285",
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time.",
        "label": "Timing of Transfer of Good or Service [Domain]"
       }
      }
     },
     "localname": "TimingOfTransferOfGoodOrServiceDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TradeNamesMember": {
     "auth_ref": [
      "r474"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.",
        "label": "Trade Names [Member]"
       }
      }
     },
     "localname": "TradeNamesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-3-business-combinations-intangible-assets-acquired-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TrademarksAndTradeNamesMember": {
     "auth_ref": [
      "r474"
     ],
     "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, or rights either acquired through registration of a business name to gain or protect exclusive use thereof.",
        "label": "Trademarks and Trade Names [Member]"
       }
      }
     },
     "localname": "TrademarksAndTradeNamesMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-7-goodwill-and-intangible-assets-summary-of-intangible-assets-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransferredAtPointInTimeMember": {
     "auth_ref": [
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which good or service is transferred at point in time.",
        "label": "Transferred at Point in Time [Member]"
       }
      }
     },
     "localname": "TransferredAtPointInTimeMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransferredOverTimeMember": {
     "auth_ref": [
      "r290"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which good or service is transferred over time.",
        "label": "Transferred over Time [Member]"
       }
      }
     },
     "localname": "TransferredOverTimeMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-disaggregation-of-revenue-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfAdoptionMember": {
     "auth_ref": [
      "r141",
      "r142",
      "r143",
      "r144",
      "r206",
      "r207",
      "r208",
      "r209",
      "r210",
      "r211",
      "r406",
      "r407",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r447",
      "r448",
      "r449",
      "r450",
      "r571",
      "r572",
      "r573",
      "r612",
      "r613",
      "r614",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r620",
      "r621",
      "r622",
      "r623"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amendment to accounting standards.",
        "label": "Accounting Standards Update [Domain]"
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-stockholders-equity",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue",
      "http://www.nwpipe.com/20201231/role/statement-note-15-revenue-1-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases",
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the types of restructuring costs.",
        "label": "Type of Restructuring [Domain]"
       }
      }
     },
     "localname": "TypeOfRestructuringDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-",
      "http://www.nwpipe.com/20201231/role/statement-note-18-restructuring-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax": {
     "auth_ref": [
      "r506"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrealized loss recorded in accumulated other comprehensive income pertaining to the decrease in fair value of foreign currency exchange rate derivatives designated as cash flow hedging instruments to the extent that a cash flow hedge is determined to be effective.",
        "label": "us-gaap_UnrealizedLossOnForeignCurrencyDerivativesBeforeTax",
        "terseLabel": "Unrealized Loss on Foreign Currency Derivatives, before Tax"
       }
      }
     },
     "localname": "UnrealizedLossOnForeignCurrencyDerivativesBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-11-derivative-instruments-and-hedging-activities-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r418",
      "r428"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrecognized tax benefits.",
        "label": "us-gaap_UnrecognizedTaxBenefits",
        "periodEndLabel": "Unrecognized income tax benefits, end of year",
        "periodStartLabel": "Unrecognized income tax benefits, beginning of year"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued": {
     "auth_ref": [
      "r426"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of statutory penalties accrued for a tax position claimed or expected to be claimed by the entity, in its tax return.",
        "label": "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued",
        "terseLabel": "Unrecognized Tax Benefits, Income Tax Penalties Accrued"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAccrued",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r429"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.",
        "label": "Increases for positions taken in the current year"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-16-income-taxes-summary-of-changes-in-unrecognized-tax-benefits-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r166",
      "r167",
      "r169",
      "r170",
      "r174",
      "r175",
      "r176"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates, Policy [Policy Text Block]"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-significant-accounting-policies-policies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "auth_ref": [
      "r133"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward.",
        "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]"
       }
      }
     },
     "localname": "ValuationAllowanceOfDeferredTaxAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "auth_ref": [
      "r127",
      "r132"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of valuation and qualifying accounts and reserves.",
        "label": "us-gaap_ValuationAllowancesAndReservesBalance",
        "periodEndLabel": "Balance at End of Period",
        "periodStartLabel": "Balance at Beginning of Period"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesBalance",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "auth_ref": [
      "r130"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.",
        "label": "Charged to Profit and Loss"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "auth_ref": [
      "r131"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in valuation and qualifying accounts and reserves.",
        "label": "us-gaap_ValuationAllowancesAndReservesDeductions",
        "negatedLabel": "Deduction from Reserves"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDeductions",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "auth_ref": [
      "r127",
      "r128",
      "r129",
      "r131",
      "r132"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "auth_ref": [
      "r127",
      "r128",
      "r129",
      "r131",
      "r132"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by valuation and qualifying accounts and reserves.",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-schedule-ii-valuation-and-qualifying-accounts-valuation-and-qualifying-accounts-details"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableLeaseCost": {
     "auth_ref": [
      "r550",
      "r557"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details": {
       "order": 1.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.",
        "label": "us-gaap_VariableLeaseCost",
        "verboseLabel": "Variable lease cost"
       }
      }
     },
     "localname": "VariableLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-9-leases-lease-cost-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_VariableRateAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of variable rate.",
        "label": "Variable Rate [Axis]"
       }
      }
     },
     "localname": "VariableRateAxis",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_VariableRateDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.",
        "label": "Variable Rate [Domain]"
       }
      }
     },
     "localname": "VariableRateDomain",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt",
      "http://www.nwpipe.com/20201231/role/statement-note-8-line-of-credit-and-longterm-debt-details-textual"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "auth_ref": [
      "r159"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": {
       "order": 0.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": "Effect of potentially dilutive common shares (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r154",
      "r159"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": {
       "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": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted weighted-average common shares outstanding (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Shares used in per share calculations:"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r153",
      "r159"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details": {
       "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": "Basic (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-consolidated-statements-of-operations",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-loss-per-basic-and-diluted-weighted-average-common-share-outstanding-for-continuing-and-discontinued-operations-details"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WorkersCompensationLiabilityCurrent": {
     "auth_ref": [
      "r48"
     ],
     "calculation": {
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details": {
       "order": 1.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations and payables pertaining to claims incurred of a workers compensation nature. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Workers compensation reserves",
        "terseLabel": "Workers' Compensation Liability, Current"
       }
      }
     },
     "localname": "WorkersCompensationLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual",
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-summary-of-accrued-liabilities-details"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent": {
     "auth_ref": [
      "r19",
      "r21",
      "r579",
      "r594"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations and payables pertaining to claims incurred of a workers compensation nature.",
        "label": "us-gaap_WorkersCompensationLiabilityCurrentAndNoncurrent",
        "terseLabel": "Workers' Compensation Liability"
       }
      }
     },
     "localname": "WorkersCompensationLiabilityCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WorkersCompensationLiabilityNoncurrent": {
     "auth_ref": [
      "r51"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations and payables pertaining to claims incurred of a workers compensation nature. Used to reflect the noncurrent portion of the liabilities (due beyond one year; or beyond one operating cycle if longer).",
        "label": "us-gaap_WorkersCompensationLiabilityNoncurrent",
        "terseLabel": "Workers' Compensation Liability, Noncurrent"
       }
      }
     },
     "localname": "WorkersCompensationLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2020-01-31",
     "presentation": [
      "http://www.nwpipe.com/20201231/role/statement-note-2-summary-of-significant-accounting-policies-details-textual"
     ],
     "xbrltype": "monetaryItemType"
    }
   },
   "unitCount": 8
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=6359566&loc=d3e326-107755"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721673-107760"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6812-107765"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3367-108585"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=SL94080549-108585"
  },
  "r102": {
   "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"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3536-108585"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "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"
  },
  "r107": {
   "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"
  },
  "r108": {
   "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"
  },
  "r109": {
   "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"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6911-107765"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4297-108586"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4304-108586"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4313-108586"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4332-108586"
  },
  "r114": {
   "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"
  },
  "r115": {
   "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"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790"
  },
  "r118": {
   "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"
  },
  "r119": {
   "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"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6935-107765"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(m)(1)(iii))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(e),(f))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(f))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r123": {
   "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"
  },
  "r124": {
   "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"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(n))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04.(a))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e7018-107765"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09(ColumnA))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r136": {
   "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"
  },
  "r137": {
   "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"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "27",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e22044-107793"
  },
  "r139": {
   "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"
  },
  "r14": {
   "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"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21728-107793"
  },
  "r141": {
   "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"
  },
  "r142": {
   "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"
  },
  "r143": {
   "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"
  },
  "r144": {
   "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"
  },
  "r145": {
   "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"
  },
  "r146": {
   "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"
  },
  "r147": {
   "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"
  },
  "r148": {
   "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"
  },
  "r149": {
   "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"
  },
  "r15": {
   "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"
  },
  "r150": {
   "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"
  },
  "r151": {
   "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"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "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"
  },
  "r155": {
   "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"
  },
  "r156": {
   "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"
  },
  "r157": {
   "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"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r16": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "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"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=116846552&loc=d3e543-108305"
  },
  "r165": {
   "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"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592"
  },
  "r17": {
   "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"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592"
  },
  "r172": {
   "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"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8672-108599"
  },
  "r178": {
   "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"
  },
  "r179": {
   "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"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "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"
  },
  "r189": {
   "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"
  },
  "r19": {
   "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"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "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"
  },
  "r193": {
   "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"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "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"
  },
  "r197": {
   "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"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=121593590&loc=d3e4647-111522"
  },
  "r199": {
   "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"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(2)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721675-107760"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r200": {
   "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"
  },
  "r201": {
   "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"
  },
  "r202": {
   "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"
  },
  "r203": {
   "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"
  },
  "r204": {
   "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"
  },
  "r205": {
   "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"
  },
  "r206": {
   "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"
  },
  "r207": {
   "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"
  },
  "r208": {
   "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"
  },
  "r209": {
   "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"
  },
  "r21": {
   "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"
  },
  "r210": {
   "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"
  },
  "r211": {
   "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"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "330",
   "URI": "http://asc.fasb.org/topic&trid=2126998"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r220": {
   "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"
  },
  "r221": {
   "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"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267"
  },
  "r223": {
   "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"
  },
  "r224": {
   "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"
  },
  "r225": {
   "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"
  },
  "r226": {
   "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"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r229": {
   "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"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "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",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r231": {
   "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"
  },
  "r232": {
   "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"
  },
  "r233": {
   "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"
  },
  "r234": {
   "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"
  },
  "r235": {
   "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"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "http://asc.fasb.org/topic&trid=2144416"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229"
  },
  "r239": {
   "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"
  },
  "r24": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "http://asc.fasb.org/topic&trid=2155823"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "410",
   "URI": "http://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "410",
   "URI": "http://asc.fasb.org/extlink&oid=6393242&loc=d3e13283-110859"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "410",
   "URI": "http://asc.fasb.org/extlink&oid=6393242&loc=d3e13296-110859"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "410",
   "URI": "http://asc.fasb.org/extlink&oid=6393242&loc=d3e13207-110859"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "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"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "420",
   "URI": "http://asc.fasb.org/topic&trid=2175745"
  },
  "r25": {
   "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"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=121559207&loc=d3e25336-109308"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "http://asc.fasb.org/extlink&oid=121559207&loc=d3e25336-109308"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14394-108349"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14453-108349"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14472-108349"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349"
  },
  "r26": {
   "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"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB TOPIC 5.Y.Q2)",
   "Topic": "450",
   "URI": "http://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=121555522&loc=d3e12021-110248"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=121555522&loc=d3e12053-110248"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=6802200&loc=d3e1835-112601"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=120520924&loc=SL6031897-161870"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=120520924&loc=SL6031897-161870"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "http://asc.fasb.org/topic&trid=2208564"
  },
  "r268": {
   "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"
  },
  "r269": {
   "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"
  },
  "r27": {
   "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"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121556615&loc=SL49130533-203044"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130551-203045"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "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"
  },
  "r279": {
   "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"
  },
  "r28": {
   "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"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130556-203045"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130556-203045"
  },
  "r282": {
   "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"
  },
  "r283": {
   "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"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130549-203045"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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"
  },
  "r29": {
   "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"
  },
  "r290": {
   "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"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "http://asc.fasb.org/topic&trid=49130388"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "http://asc.fasb.org/extlink&oid=6409733&loc=d3e19396-108361"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "15",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "712",
   "URI": "http://asc.fasb.org/extlink&oid=6410066&loc=d3e79218-111664"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "15",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "712",
   "URI": "http://asc.fasb.org/extlink&oid=6410066&loc=d3e79218-111664"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=109237824&loc=d3e1703-114919"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=109237824&loc=d3e1731-114919"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r3": {
   "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"
  },
  "r30": {
   "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"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(10)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(2)",
   "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": "(a)(3)",
   "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": "(a)(4)",
   "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": "(a)(5)",
   "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": "(a)(6)",
   "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": "(a)(7)",
   "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": "(a)(8)",
   "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": "(a)(9)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r31": {
   "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"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(5)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(6)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(7)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(8)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r319": {
   "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"
  },
  "r32": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r33": {
   "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"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(5)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(6)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(7)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r34": {
   "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"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(j)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(k)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(k)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(k)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(l)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(n)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(o)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(p)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(q)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r35": {
   "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"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2410-114920"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(5)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(6)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r36": {
   "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"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(7)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2709-114920"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e2919-114920"
  },
  "r363": {
   "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"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=118257860&loc=d3e4587-114921"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=21916913&loc=d3e273930-122802"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=6412939&loc=d3e15145-114933"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "60",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=6414203&loc=d3e39689-114964"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=29639808&loc=d3e29008-114946"
  },
  "r37": {
   "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"
  },
  "r370": {
   "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"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=d3e29149-114947"
  },
  "r375": {
   "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"
  },
  "r376": {
   "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"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=65877416&loc=SL14450691-114947"
  },
  "r38": {
   "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"
  },
  "r380": {
   "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"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "http://asc.fasb.org/topic&trid=2235017"
  },
  "r382": {
   "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"
  },
  "r383": {
   "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"
  },
  "r384": {
   "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"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901"
  },
  "r386": {
   "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"
  },
  "r387": {
   "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"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r389": {
   "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"
  },
  "r39": {
   "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"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b),(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r391": {
   "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"
  },
  "r392": {
   "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"
  },
  "r393": {
   "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"
  },
  "r394": {
   "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"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "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"
  },
  "r398": {
   "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"
  },
  "r399": {
   "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"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "http://asc.fasb.org/subtopic&trid=2122178"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.13(a))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901"
  },
  "r401": {
   "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"
  },
  "r402": {
   "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"
  },
  "r403": {
   "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"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "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"
  },
  "r407": {
   "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"
  },
  "r408": {
   "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"
  },
  "r409": {
   "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"
  },
  "r41": {
   "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"
  },
  "r410": {
   "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"
  },
  "r411": {
   "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"
  },
  "r412": {
   "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"
  },
  "r413": {
   "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"
  },
  "r414": {
   "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"
  },
  "r415": {
   "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"
  },
  "r416": {
   "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"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=SL37586934-109318"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e32247-109318"
  },
  "r42": {
   "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"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e32280-109318"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "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"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=SL6600010-109319"
  },
  "r43": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32847-109319"
  },
  "r438": {
   "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"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319"
  },
  "r44": {
   "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"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319"
  },
  "r441": {
   "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"
  },
  "r442": {
   "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"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r446": {
   "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"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.3)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r460": {
   "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"
  },
  "r461": {
   "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"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Subparagraph": "(a)-(d)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6909625&loc=d3e227-128457"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116868678&loc=d3e1043-128460"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(3)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463"
  },
  "r469": {
   "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"
  },
  "r47": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121600890&loc=d3e2207-128464"
  },
  "r472": {
   "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"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121647850&loc=SL65897772-128472"
  },
  "r474": {
   "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"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=121598580&loc=d3e5333-128473"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6387-128476"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6393-128476"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=6911189&loc=d3e6396-128476"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6527-128477"
  },
  "r48": {
   "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"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6571-128477"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6578-128477"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=116859721&loc=d3e6613-128477"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(f)(1)",
   "Topic": "805",
   "URI": "http://asc.fasb.org/extlink&oid=120321790&loc=d3e6927-128479"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "http://asc.fasb.org/topic&trid=2303972"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r49": {
   "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"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "810",
   "URI": "http://asc.fasb.org/topic&trid=2197479"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "205",
   "URI": "http://asc.fasb.org/topic&trid=2122149"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r500": {
   "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"
  },
  "r501": {
   "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"
  },
  "r502": {
   "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"
  },
  "r503": {
   "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"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624163-113959"
  },
  "r505": {
   "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"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624171-113959"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL5624171-113959"
  },
  "r508": {
   "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"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4CC",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=SL109998890-113959"
  },
  "r51": {
   "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"
  },
  "r510": {
   "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"
  },
  "r511": {
   "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"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121590274&loc=d3e41675-113959"
  },
  "r513": {
   "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"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "http://asc.fasb.org/extlink&oid=121549185&loc=d3e80748-113994"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "815",
   "URI": "http://asc.fasb.org/topic&trid=2229140"
  },
  "r516": {
   "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"
  },
  "r517": {
   "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"
  },
  "r518": {
   "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"
  },
  "r519": {
   "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"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=121572278&loc=d3e13531-108611"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=121572278&loc=d3e13537-108611"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r53": {
   "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"
  },
  "r530": {
   "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"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900"
  },
  "r532": {
   "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"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "830",
   "URI": "http://asc.fasb.org/topic&trid=2175825"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=119993939&loc=d3e28551-108399"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=119993939&loc=d3e28555-108399"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=121573735&loc=d3e41499-112717"
  },
  "r54": {
   "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"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121329987&loc=SL77916155-209984"
  },
  "r541": {
   "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"
  },
  "r542": {
   "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"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918638-209977"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918643-209977"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121603541&loc=SL77918643-209977"
  },
  "r546": {
   "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"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r548": {
   "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"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a)(5))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r551": {
   "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"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(2)",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=121609121&loc=SL77918686-209980"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39599-107864"
  },
  "r559": {
   "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"
  },
  "r56": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "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"
  },
  "r568": {
   "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"
  },
  "r569": {
   "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"
  },
  "r57": {
   "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"
  },
  "r570": {
   "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"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r579": {
   "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"
  },
  "r58": {
   "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"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r582": {
   "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"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878"
  },
  "r584": {
   "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"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Subparagraph": "(c)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=75038535&loc=d3e64711-112823"
  },
  "r59": {
   "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"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=108315417&loc=d3e61044-112788"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(15)(b)(2))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r593": {
   "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"
  },
  "r594": {
   "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"
  },
  "r595": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r596": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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"
  },
  "r6": {
   "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"
  },
  "r60": {
   "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"
  },
  "r600": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r601": {
   "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"
  },
  "r602": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910"
  },
  "r603": {
   "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"
  },
  "r604": {
   "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"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "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"
  },
  "r609": {
   "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"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=99393222&loc=SL20226024-175313"
  },
  "r610": {
   "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"
  },
  "r611": {
   "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"
  },
  "r612": {
   "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"
  },
  "r613": {
   "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"
  },
  "r614": {
   "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"
  },
  "r615": {
   "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"
  },
  "r616": {
   "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"
  },
  "r617": {
   "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"
  },
  "r618": {
   "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"
  },
  "r619": {
   "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"
  },
  "r62": {
   "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"
  },
  "r620": {
   "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"
  },
  "r621": {
   "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"
  },
  "r622": {
   "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"
  },
  "r623": {
   "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"
  },
  "r624": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=99380617&loc=SL75241803-196195"
  },
  "r625": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.6-06(3))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=120401414&loc=d3e604059-122996"
  },
  "r626": {
   "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"
  },
  "r627": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "740",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491622&loc=d3e9504-115650"
  },
  "r628": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916"
  },
  "r629": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(i),(j),(k)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916"
  },
  "r631": {
   "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"
  },
  "r632": {
   "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"
  },
  "r633": {
   "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"
  },
  "r634": {
   "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"
  },
  "r635": {
   "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"
  },
  "r636": {
   "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"
  },
  "r637": {
   "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"
  },
  "r638": {
   "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"
  },
  "r639": {
   "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"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(i-k)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669646-108580"
  },
  "r640": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b"
  },
  "r641": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r642": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1-"
  },
  "r643": {
   "Name": "Forms 10-K, 20-F, 40-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "15",
   "Subsection": "d-1"
  },
  "r644": {
   "Name": "Regulation 12B",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r645": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405"
  },
  "r646": {
   "Footnote": "2",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "28"
  },
  "r647": {
   "Footnote": "4",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "29"
  },
  "r648": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "09"
  },
  "r649": {
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Paragraph": "(m)",
   "Publisher": "SEC",
   "Section": "4",
   "Subparagraph": "(1)(iii)",
   "Subsection": "08"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL116659650-108580"
  },
  "r69": {
   "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"
  },
  "r7": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "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"
  },
  "r74": {
   "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"
  },
  "r75": {
   "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"
  },
  "r76": {
   "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"
  },
  "r77": {
   "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"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=116657188&loc=SL116659661-227067"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=121640130&loc=d3e1436-108581"
  },
  "r8": {
   "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"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=116657190&loc=SL116659633-172590"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r82": {
   "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"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(21))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "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"
  },
  "r88": {
   "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"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7(a),(b))",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227"
  },
  "r9": {
   "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"
  },
  "r90": {
   "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"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "220",
   "URI": "http://asc.fasb.org/topic&trid=2134417"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3179-108585"
  },
  "r93": {
   "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"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3213-108585"
  },
  "r95": {
   "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"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3255-108585"
  },
  "r97": {
   "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"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3291-108585"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3291-108585"
  }
 },
 "version": "2.1"
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>107
<FILENAME>0001437749-21-004994-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0001437749-21-004994-xbrl.zip
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
M-_L(?^&+J+GV44Y/C_*?Q3=02P,$%     @ TX%D4@DJ< H."   SS<   T
M  !E>%\R,C,W-CDN:'1M[5MM4QLY$OZ\^14Z7VT6JNR (6QR8*@BA.2HO0 %
MWJK[=B7/]'ATF1E-)(V-]]??T]+X#9LLV64#^%Q)88_>NM7J1T^W-.ZD+L^.
M.BG)^.C%#QVG7$9'=/.?G9W=-S__XQ5J.UNA\,4/J/];JR4^4D%&.HI%;R2Z
M:57$9-[KG,2E-DYFHB5VMO!O>Z<M?M[??;._NRTN/XE6ZZB3DY,B2J6QY X;
ME4M:;QMU:2%S.FPDVN32M6)R%#FEBX:(=.&H0&M'&96I+NBPT(VC%YVMH'*G
MI^.1L&Z4^>Z%:R4R5]EH7[S\4FEWT%4Y67%.0W&E<UF$PJ;PQ4UAR:CD0/A^
M5OU&^Z*]7;H#4<HX5D5_7VRK0FR_:JOB0$25L=KL"UDY?< :E \N-I>FKPI(
MY0='-ZXE,]5'0003D('4ET7/E@>=K?+HQ7=5P*A^ZB"_TSLZ_?<_S]Z==<5N
M^U6[L]4[^O[*9)2X1[3%9#%@C)/3J^[9A[.3X^[9Q?G_I37^6UFGDA$T.&N*
MZT@[)SZAL]$6HT5DN%*X5+K]IV$:)WL9B9XVV+4.&]O882C+:KQ/GFTIH_%S
MK>U0Q2YEB=L_UD(4-K["L=@;W@^P/6+_-./V YYZ)+.Q+DZ7OA4WBF\-NO.F
MG-73Q7>T:[_U[7SE4C/^=,N /]VRW=1TWG*UX?CKC-FF*]I^Y8W&XF:4^G[R
MST0J!R0,#10-P3<N558<%T4%EKFB$G0C="$^@#2"Z=K;K5^$3L0Y:M(A62<N
M54GB1.>E+$8'MR>#3\/KAD]VBK5S/BOGW'EDYWPG+5P2_I>/Q.="#S.*^]0,
M/FJ"<\8:\@KM?!0C$4K "T6%S;$B*(@0*L<:L<-*N DX1<&O$QFAR B=*X=U
M">T6&A04D;72C+A)+C\3Y,Z,:5$60QF(S)BY608WB)2)JAS-"G07/G(3PU1%
MJ; 5_YGV'Y*A>A">0*YLAG@+;B>&RJ68H"T1HK%T'K>$:CK&-.%8(2Z<,<,:
M=RN%N]VGBCL2B2K@V0R2J2<W 3HT1[69J5=%2#608^![E%4QQ@1:9MRV":0I
MDXU$"6=GG#)^LVP*Q!H#-JS0O'P /E8\>I.;51D0!0CJDA,GE%JO5"1M*I),
M#^T8GX;ZRCHC(4UR85 >JC9G8&;'&BVHO$;:2B'M]2,CK3OGD2___G:G_>;
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
M0#/^:<>:#ZBVRS_U@ G]+U;^"U!+ P04    " #3@612HL.9,:P$   M&
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
MID<-9T.U,B'N"3N F%['Y^.[.#WMK,,ZE<5/QPPE(%2^YZT7= M7@G,6GA@
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
M\IFO]+1TU]*7CB#50K?92:,#A89PAB<DHR?@S5T[LH0C"!,X>0VT(F+FNUS
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
MW$!6+'Z[Q>OMAW$/#,XT"1[KU\6E\!3$/A)FUY-TW?%/\!XT=#$C1U .P"#
MDV1<2C@TL74J%MJ4OYZ]?[,E6\U@^:3M$61;:Y]_MTO.5-OT<9F[?4;A(R:R
MYPZ5X1^U0,#@'JC4-: B3P@I[O.S(QVO*#,A'E[D+F;=>AS$&7+&J/AYACY7
MV4"VF9+X0#>BF\Z,$CQ\W47(6VEMW2XE81+I+&#8&U :P]L#R-]N!WCII6]Q
M+=_"9\(<DX=/Q,E]#[BH-L24HP#!4D7#R1O="YBH:IPE+)5VACT>JR,B>=G1
MPF7)UW\IZ7;#9[AKMLT32$YFI+(\I>BP1 7F 8T5!%M6KY#YDC]V-DSZ::2Q
M77*;TI0L&*ZL^2]=5B/+)$?ATT&95>K^%:@"_5.1Y%1U%X%@N3!K77!K2G92
M#25.Y-BI4V@):7WOUNJWE2V 3=YX*9C,R+R8[2@2)N4( OB+)M4VUT#MZ\$<
M((]DT$J6[VVXG)J$5/UU>,=AX.,<NQ[A8AQSE?! (/Q=,003<%F=X<KI(5W<
MR()NNAYH2/([,;!X5Q>3)M<8L].2)XC%!1EJUGP&+NW/#BNOL_-\^DG#&Y22
MZM*D^0"5U\5.9,_X9J0(Z!UOOG.+.UC4W3 %U<&T_DRV)7*;/S 90GMQ^-1
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
MG3S(*L<LM+Q:-$JZW6:WJ.;MJ_$'4]]R@U2&$J.-UF]\IJ+-2JYP5R7_" D
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
MH==LI_2$AJ4H,M_B&A[?HAVZ/H/<N7(W)\CI0JRY\J>SKV7O^3_P1AK2.?:
M'_C.\S,H\[?(5E)K"LJA#FE+[9YM7_] LL2Z6+Q>,K;;9A>H]I.Z-6 _G_E1
M0<?S?G^DJQ'$"O@2Q1>GKUVQ&3I@W#+I5XI-_+CXLLQ'.$QZ ^(V^P7##V,X
M"02,(W,[3JV3E?IJ]'J7ST[#6G"&!#]8GPI['.TJTL'%S%^E1?28W77O.V=.
MZ)B>FF[MW'M3^8I/ 6C=AA/Y.,#!:[,J[C-I>PDHRUIDRY19\!OU\*JD_K'[
MS1X7*"^TU"31+K>4!WYG@'*MO8?&?I?]4)9D<^/)'=]?P^9+L%NS,Y+.OINM
M;*0A<^Q/<[WK&[M5YWR%_(WE-7\?"C&M09F/(*[%G.A1NMX'LDB<:N/?N,/4
M!53)[G=S:)[JVXBWG1"K&$K*GVX=:A2[;[$>.8%V(H^XETJ7V7H<NRP+YB"(
MO!A;W=TF C=<0!\M.*-V,]K[5/ZD=V3CC2J%S+(4GHQL<LO&TJ\E(29R1C\&
ME,^+J_N/_*:5B!$$=[##/V!"]Y!A5Z9">HX@',LY#"AH]]#Y?-3]E4:3=H]3
M\_.ZLC9_^-ZB!Z'U'DE49<%JRSIP<$!:N6-<14/Q UFZ<:&88I'*_+"^Z92=
M^_O,)O<8TPW_ [^J#!3#+=P!..T$AI@1A[I:.1R)6:T31J*=Y6^/!6?P(-II
MK8_5XJK5)H<[6NMC6;WP@]3Z+[OC@S^-/^*L&!P!/&7WY%==_++\V&\^8=1M
MLF(#Z4SS9E[_XZXDZ=4^W:N3A663<84?C?A3O*5-+#-WO=TNAA<LPBRLKDB;
M Z64<\"_=\A/= _P+U:G4?!29,^>(EES)7&/]_<1),FCPSE/T-D\CN=+E/6W
MNS9WC6QNO^+3^[?;,.)Z1G@PRIH$2^H2JNYJJ-.'E<\A9_L:?4*7I1LZ8GL"
MA5]QI9XD]AF'2YCU\G"RK8].3MUF'X$?QQ#R7+@ @U?Y\>6DO23ZI1G"E$;*
ML)]3W]\CR.*>BLS$;MI2^5._M7<I@1?.K0:\D)5'I5[+8A\8!4]91J$O(8.L
M)U1IUF0EHPGLH>O=Z=\%*LH.Z7I^KE3C*P?G+80RV\/#6>1+JL>KSCM<4>Q\
M6?)$']K=!=PZ@ARC:8,CB-63TM1^6_RM*16LDPK_UC4+Q:&MDR>;[Y\+;!1E
MW:9A41_#-"ZTLDB1'4UH K-$VX*PZJ3? 8GY17EO[7T6G.-SPDEGI ?QH0O/
MOHKFF%14WAX3:FM-MU\)#);A[;>Q0=<P[/D0QX :GDA/9\ RH?D#8O ((D(S
M>@M&V'=,S\*G]:^KANBM8!T^/*4T-J0,B=3Y4V]:78\Y*X9:>U'92CL10UP
MNVY\2.B#"M0T*\.V7X2H<1O6/1U#F06],0H0+IS^W?GYT]F:\MJ=U"2US()Q
M\NAD\VWV:!]8O6W":U#9M!5XTTHZ*0H'BHI)RG"^+0^RH[DX]@6.FK1X@%%7
M>"6TNL;,?ADQ@;($8&;DA#X&E@8[Z8B#&13[R>W'X6;7^M46B*9O+M8:!#QC
M$I-GG^DXRRAS?(N2=,X$ F;1KG]6]TL7R3*Q2++8!MA'VCFDX'7G)E=G@R<5
MLFL^#+B&+C2:R_.IY(3^A#ZF86<VH0WL,<V(0E6W][-E>6;DOA7^!]ZJLQM3
M:RVY\_C[D//;+[Y\,?"5(B=3&.M\[#R)[D?S@? JI/2^19Z3=R?4K-:L_,_!
M??Q)E]4=41>O!>W[] V+TIE&?1/&S@$PC#2:XNB9II;CF.<TH?^0#FN]']X"
MVV&;)-2?'A)=;YWW8RER@/UX8#LJ5A?,, Z,;$<3L"9BDF0G=PADD_[+?+=:
M)H)'I/\.FI./];"U2A?H6;H=N'XZMR?8=NE.)2@YWN#\= 6XB6$=U<[PRTBF
M*QY!>B^L_E"Y-63)G2&@39%.#5'R5O-H:IF/S3:3-F$SE!N8@.56BB7_U4V&
M %U)Q8 EG(EF2ZZMJ?,) I,"L,7*HR('0UD9:F:=$WE><X'TC,I;CP^!--HE
MG6)A#.$%[+B!FE<:HG*4Y(1XWAPI:%K?U=QYO7T"T^BR5KW[GXJD6I'!],6V
MD. 0O^I8-^CK[Z_X>$$=*B?2E1*!.;Z5?W(O27.%'[PQ:I<\\\-QZMF*=9X5
MPK-PE^NZT E?@LW/\3N:O+'K50S\=AGFCEB9#R-J)TK>:YK0^.>G5\@&I:3#
MT-$;'=F[@Q9%N_?*"W$3"OX _L3 DZ=6F7UGHUDCIH68?A8U,+0? X;4H%RF
M4+;TTV"!D.C?EJK:B@32[%.OEK"%PO*1\M]]#\.-4H;R@J#+>ML>?[1XWFYU
M_OOWK1:*E<QGEGY&$RKF'4;154PJV7Q<RP#3$8="FR?NF;F'^2GB6PB2+V+4
MV4QLSWZ\FXF.9L1Q!<7U,!.E1SU+TR>+)@0[V_7K3B#K[-MGL<Z&+E-IOP^7
MUCX'EDUHE)LL_YQ:%6/)A(@=>]I5/QNU9R",4@/<QZ;W-*"QGQ/,HB,8X!5A
M,UFKL9,'5SUE'1!R6H;U6\S !9=!!N[)^)=5Y95Z#]F)HXFT\RA#LC3UUDR-
MBF\PI6W&]2+H(8EX7ELS\['ZK+K4V)6>798OJ'*>S^514Y-=A*P5WHS>#X:]
MCY?;R'S],W^[TOST,97P'X\W%M3V0B[)QC-W&J699)T[?^[1M7?\I>V5-C)\
M;T^_XBM&L5)5?%J+@=NC8B@?LG3AZ\W- &('AAV\?RZ@K"W_[^*(MK9HJ^EX
MB>&%1YDEKX/6^LPPS\_^K>B'1R_ !DX:]FKK-KE4%W'-DLC2Q93PZ_=K2^.1
M=\UZOA;X*PR1O^B0VK=.,_?1S]%[T+S@A]<@96;O-OE67MCJ8=@MLL9";EYE
M2L02],XD"9L^L3Y"$1!4FB,&/+^D%'J57;@G U3(B K>D1A0@0Y"Q5!Z54[P
MK;"\QY07I(H$N^G5J8IT$F5FG?#:(]ZAU.QBAUM:PNZWF[/30K?9D[^OU'M&
MX73(0XLDU4+%#G=2AY_/GCWB?1V;_YVMWH6!B#./RC[Y#'LB5 =.Q8Y5Q;/K
MC(%15'&D"<DR0W-%P.?BCVM'D#X[@Y,=[?;^T<900USVS^'_%A[R-+:^^/3U
M/7. X^]WC.RDE@@';F:P('_<ZYC>T3<G2_8Z[M"QE5L'NG4)(:OWP_4?/VD5
MS>4A'O=3H)YC]]<NE7$+]D?D00'C@#@1/R++)!8NO2E2)#*NL<=W;]'!9[P$
MF?VEVP]KOGY!G/ML]AM3%U'W2QXR/)$((PBR H^94^O!<!O [J$L)U5IILM:
MTXI34/NIBL[C"]MV%N+FB-?U[-%3AB<6Y>)^VIBR[.5@L./_<_3C_^__W_5
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
M%RK.%Z4-I9A' !9-=+"W@P2_#J"NO]XGQ(P;'^D%[]A_E>-A3#-6-58YA95
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
M8]]%4>&R,S\^?_Y24551<:G@2-Z_L$<$OL#"8$4?062A[OLD'(":5U-+/WR
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
M8Q@<AMOF">PFA4&O*F'2V,K(.:@@U',DSO ,]7OL;\Q<WWY 2L5DAJY ^)V
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
MV2AK _/]E]GB]T#U8*;$+2*D)R3D?3M8"X=W3+#U*IW"-5 "H+QS%XX):=?
M!PZZZE>^;TYCQ?_!X/.;).+W0+ .N9 .EWZH,.+!.[-O0D1PV%_.Y:@BLSE>
M^3::[T?5]LF'9JJ/Z.L]I9LK8:$LQE54UQ6V*'O(\%1"SXO^V),S^H%PZ"@3
M0BR_&(@3<LY;>%P9^:E@%?'SD-5=L>_RO9 &*,4+1;I6[(6J4X_T'-82\#].
M@R1N"?XZ[2DMS7?.!#H]^+0SSY7,M8J)0DFW!U.YC&@>6=29[OQ:T\W*8KBY
M:QO-IX'> D6W>S]22'<%A_B51JF>O\X Y^IC,K:GVZ#"R&%EAAN<W/T<)<I6
M9D_A).HQ$EZ>MO4-U* 8WW:^E7#?F_;">C@5TS-?B)('[MV3&"PX_E0 %"*7
M0K6B6[-2$*Y!9' <3HBI3(;$21T(SL0J 3FD!9];=A-U;X,UKI/TCCUOG&R,
M/CYY?^=>/8'J% 1,#G%M[C N,.' O)-YC)VN(E,>*?>*_'4/=*-C82:2C2F3
MUW*D>[$2VE6IRET.AUNH:70Q*BI2_XIVS<G*?N:I^>FWV7V97N&2?DF3J'EA
MLV%G8^Z3R[QN;X5<+#:0,JQW3!MUM(H/PI2:TY4AHFN\,G1YPJQC:EM57B1I
MW+E7I1H_?/_0H43BO<B6L"[03X&G>R ZB57"E'_@5[J6S[T'\E!,>X#K:)V4
M[G=H?7*EXFR%M8/2P"?/U,M/..Y\>T?%,(7F&;TO*ASR^ZSFK>C10!V"0WCN
M"LF36A7[-1HB_F+_E_E;6=+)>METB@[=ET9_1R* 'V&/ T2R=+/FD A#Y]:X
M9I+RC?%?2X\HA:D7U7-VS]W#_TEQNJD7]GX,L_S]HCB4:HF+"6)SC09 Q5V8
MEX%8K/24V_3C;7T;LJK%SPV*FKQD2H:;O0VB>$'Z@_'%XY<>FAWV"T=YJ,_=
MHLO53#6$JG?C#K<?^"M5\;>J)DCVM6UCX64A!]+60P_I-R!^],!:FI,7"X<4
M6F0:C;4KE\&[!8*<:>+QB"LE"U[30;JI+K.Q;ED>Y@5)I)[B&[?4^%X=B##C
M"NE!U4*Z1[AA6,7)7X089[Z&200LD$Y!K@7 ^>>_=%]1"HE6SN)^E2E=%WU1
M9J; ?JZG;,&47\CTD(;2U60MWO=%!: GG" DBAG*JBQA%3*?$2'B<.45R'X(
M2G@C#T]&K&]\A!]9_DR)^[GT+ET+>H9TX>;TW1:3<*=L5]\#Y,!0(4@?(1DJ
MK F6&"&"H]@"X^-+1,,C4^U72'L@[7X\?41=QTJV6-C<-_I [8D:E=[&5[FP
M<AIDTY[:WXM4FFPH)_!=GL^K>>*[[1G_DP2N_W+G]J<N!6O'1^^'=95^56UW
M(@^-&QZ%ZUC^<Q,X(U3YZAAE>OKS,$<LI= FRE@NS)HKTP&0)N-B$=[%2^O.
M4*I$3#T'<0\D?WO\%TK@6E# W[K.'Q-=0?X7[D1<S%*X&O)<10062H*=&:0K
MSC3L@03@#Q?Z7&0-SP)I-ZG?/JA]4*5$L3 Q?37M^)OSWY2Y3]A&0)6_7HI
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
M9AF"0L[1^N8N#+>:OP\9M8*RU&%C!(>0_3='V\$K^\>QFJ4!%>L-&9EOTWV
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
MAG BXQ<94?KM@,V"&%9";[R<3&9JEFAQA[G62W4H8VI"@"\5$]^,6 I (7X
M-XU]^N *;6B>D78*J.FHM]5+SSFX"'#AT#'/'NV?\BE%5G#\X:HJ^F03FBCS
ML;K1F2.U_1??6V6H?<@G6"VEG(Y@*=)R#UJHL/0$AKGNW5/8"2HDZV;HQI:7
MA^>FI=CT$:C6)7#;:^X!#\-U5A8?QP8RF&)?W0@8D#GT 81W 4I^DB9C/U#L
M;DO+RK%S,%7<F.8-:GKP(M#G*_D,;L2E:ED 33$^?-UZZ4 X9 #"04>X (;&
ML\7DEK):GWSI.#RQ25D]\C+S#_\ #Y#6)>)SJ!S5_$ +_#UZ$;,92YQGHYH
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
M\'YZ$#D_/57M\N1GM/N->JW*:S7V"KQYCA?? 'Z/%DTA;?UTXDIS=_WZIV9
MPOUZ195.WF($M^34C]_F,\M[6\Y,XD9<=(:RF"Y5J/F^HT749I2_8MO_/?!N
M8ZHST+X2AH1>";=]++6U\4YW(A?$N19N+D( RU_EG$L+;\3AO=%_LF([]^PH
M39:49J%AMC6D/$B"3&D^&V;QLE\EZFO.K0%.+,5+0/SS_1^4-W)F@-_5,?&T
M66>8B6*4];G(8_TY ., SL2G<6;_YW<?0H> RO46TL'$CB=D?"$ [+G525A8
M\NN=\EMZZ]MKE,5"6C!Z[+CSOSH@EOT?[CXI)?'PI7M<"; _+Y:1()>@T.2<
M'7))#\8X!!@R?]H6EGU/-R:EWN:)=6^IBO\&Z](^_:R5-CV?/O;?3+$O/YV&
M0K\W]Y=HY,8\?I]\L^*9;-$;VMGZ1"W-8\NU>R/_&:3*&[L)\'0LB%G76,T
MF=6.*?-1D>^[/<2F)J2[%%\F-1E.3G*P34;)W_]-"2W_7_^CTC\<_Q=02P,$
M%     @ TX%D4H3307!8'   &F8! !$   !N=W!X+3(P,C Q,C,Q+GAS9.U=
M6V_<.I)^7V#_@]8O>P98Q9?<@^0,'#O.,>#$7MLYF7T:L"5V-R=JJ0\EV>[Y
M]5M%W=641$EL6^T6$"!NB63=/I'%*EX^_OUAX1AWE/O,<S_M';XXV#.H:WDV
M<V>?]G[<F,<W)^?G>X8?$-<FCN?23WNNM_?WW__S/S[^EVE^I2[E)*"V,5D9
MM_/0M2D_]1;4^,?GZPO#- [>?'C][NJ;\>/VQ#@Z.#HT#UZ:!Z],\_>/#[[]
MP;?F=$$,X,#U/\"#3WOS(%A^V-^_O[]_<?_RA<=G^T<'!X?[__AV<2/*[L6%
M+2]T [Y**SQ,N//"I]:+F7>W'[^$JD<'YL&A^?(PK19R#M)5U8O?2BK:E,GK
MP LH?OB^6)P^6'-Y>7PC:=]A[J^"]*)2+/_+?7P](3Y-BKN$6;Z<@'B%+!T6
M*;B>ZX8+.0T[X/O!:DGWH9 )I2AG5EJON5*IPOWRH5 #'K E?6%Y"R'XX5'&
ME,\LN13P0J(EGP=I\2GQ)X(/>"@O:B)WOK1"]$I6+5CR"H[@#:KU7;%"Z)LS
M0I;K5.(7$AKPIH*SY(VD$O)B!T768GB\WH]>YHNR&C Q%S]F*P73PQKXXD_O
M\/W[]_OB[9Y!@H"S21C0,X\O3NF4A YP$[I_A<1A4T9MZ#8<NJ!N4"B0>QT0
M/J/!=[*@_I)8M!$BT,,8AN@FV&+I\<!PUZK60B;J7"X\BP2B:\,Z?E4E_,/,
M:K\ LGO[;3E8^[:56$AKB;]Z,['^_<NXJ*X5_6EF#2BS48>T"A[6J^ O,ZEG
MXB/S\*@-%[4?8)TJI!7WJ1/XR9/>MI$-3$H8R5=,?G3AIKZGZ:X=T587AA2&
M(17HY&M^CRHB=MXC=@[?=#/66H>OUJ$DM<1?9E:_'1-K7;OB!Y140.E?][5"
M-PMH4K_4&5/[6/(UTU^]/A>YRZ#TO23N2?2MI WU_EA0O_O<<T#C=(8>N)J=
M',X+M;K8J=+UZJB0:E40U_4"T9AXECQ=+ID[]>)'\!!=E ^)CWQ-IX9P6CX0
M;J&H]:[-_I)[2\H#!L;-N=FB@3FG4YCN@$-K)F[)/QTR>0%^4U)DC4!Q.!.J
MABK4N<C82^HB$#[M^:!GA\92/[HX%G':B@-5K- 15AFH4#:=MA4*JC"7#5BF
M):=M98(J/CCDG2R%#=Q" 8/!K!R\L4#X]J;M6:'X@[BV"?^S8&7BM\@7@LJ>
M@?5^7)\W>?<1@^KMIMPE_&7VBF8Q*I/GWP\.#@S3.(UIY?\\=FWCBR!KG&=D
M/^Z7:*VQ$?K4OG1_%W^7OHNX<ERBKF(1>^KURO:5UXR?)@95L[/EN;[G,%L,
M$>ECW_2F)J)6D/0[6UNM=5TV/P1#WR1$X.^3'/7LA6]X4^,RI3Z:7F(<L"D0
MGE/79W<4OD_X33<! BD=77 X4H?#29X/Z!B0CQ$8PF 3XH@9NC^G--#4$Y3:
MU&7PEW4&_QS1-&X$S=&X$D.82P(SJ&!. P82;\3691*Z3/]*W?3&;U<%'OXV
M8D'2,_N!9_V:>XY-N6_2OT)PF#8Q ,C(Z,+$:_7^_R;'QG\;7P0?(RS4[+61
M7J,U55V@>=,/-&/GHN3V$7]N3AWO?B-HR;6N"Q5O6[B20-TX0^JCZ6N-\PC]
M1C4Q7<!XUP488R>1&L_U FH>FJ!;XK)_]PLMR=K29>?W&$-BON5X?L@I_/@.
MQ P,.%SFR.VX'8],/UPL"%^),9O-7#8%?&.LSQ*I3.;.S"5\'1:CW3_W]I0T
M8>#P0(H!$66(F!%.0<:,<9PR8US%S.PX0EZ:D]!G+O5]#/U,F-LSOEC;J"Z[
M'TKMCL&&SS%=C!^E='?<Q*],&W3E(>Q#&) U!)$;FM5EYB.IF5_%3Q/*8^0X
ML<AKD[EW\,OCO;OS8E.Z#/I2:E","IQGU';<B&_,.#NYBA)R,(E=XMM^]JQL
M59=I7TE-BW/WJYBP03#1EQ#><2N_-6>>9]\SQQ'V8$#*G;&)0TWB^QB5[6?N
MYN9UV?VUU.XX._\:<R#L?IYR8!P+#G;<_N],*$+%C)A3FT7)=\=S9P'E"].F
MDY[?NT+[NA#P1HH G(:#XJB89PL6! XN@ 43>3!.@8<=!\%[TZ&@Q)Y#==J*
M+H.^E1H4Y]L7@M".6^WPP)P2QLT[XH347(!*0$LBIM0S3E+=KB[+OI/'3' :
M?0:DC3^1M/$M1WK7;7T(?25G=T! K(;P QY&L4SL3^?4GF%<@UCPF@6]G>[6
MU'3AHB*6)J;9*4,PAJ<,B;[\CX@AXSAE:-?1<F1R&K#HTS&7#ND[Q98UJ,GF
M1_+8F9AS7Z<TC2NDN>MF?6GZ<\(I:LX6"Z2HZ^L(C%>WJ\O(\D"9F(??(&E3
MT!:+K1+:NV[L5VB)!0NRCC>*-,VHVS]*WMBZ+L/+0V=BEGZ2,2"Z\9,\ [MN
M_=?0X=Y1-^R^MK+<CBZ+RF-G8OY]'9':==N]B9>KF@%YZ/VAEAK3945YF$S,
MH:,UKL8MTMMU4[[%M&&X0*$PM1#,*2^M3 8%]C6Q(A%=II='RL1L^SCCP[A$
M/DK+GR^ CUV'Q#OH47'^804AQVE03^.O-:?+S/)PF)AZ7^<I[JX]<:NB'3HP
MPV4BV"%H"%\H.K)@%<UR1::^^S?>CHHNZZ_%SFYB-HSS<_CU9\*(\+S^-V4D
M69BPPU]YPYJ1_LM4E GHPL):M*UA)8KQ6_+7KB\_:[.8"!RTB?.8JY<2@KI@
M(@^^M5O$9/QV*YC:=>!4+#S2@I&&MC7!X:4\+E>YMFFTO&3!BA9[2UO4965Y
M8*ZT$F:T;?WB%2UF;FI<E\7E$;GJ!3*C\167LN@ @2H176"0!_.:5\V,H%!=
MWJ(%%NID= %#'A]46DPS8J.X'D8+ LJ-Z;*S/!B8K;$9C=FT*$:+>9N;UV7P
MBK!@S=*;$0)-:7(]$&AL7A<$Y.OJ:I/Q(P;*^50]-E]K3I>-*U;8Y;*THTFE
M&58]=I6WJ<NX%<ODRLG;T<*M$JQZ+-^.EB9$O*I81*>:TQV1TBY-UQ<JG8CI
MPLI:R*]E:G $B^P\ 9B%!X0Y8"WZ$(#2=)Y5L-:V+BA4K,XKG5U@_'8:T3=N
M(_J[;OE663JMN.A%61=JY$'#MHG"$5/=+9LK"J\Y;GMW&)DP1^Q^2 S_B%!3
M9$@7 N71R98(+!0^CK@V+C*N4XB.T&R!!.'=+L'I!5LQ2_@T-G-"=(;O*9O-
M\0]R1SF94;$$'48W$?8PO3 0%TQA:U./Q^O10^$)B4:D9SP\ =:?2D)='X\\
MY-OZXQ'SABN83GQ&-0AG\312@_$S5H-Q'*E!+/4'+D5TR;C,U&" &N)U_ZB&
MN!'ID1KCU]BP_$.KGZ%*1!<FY5'IFL4FH_>@9*\X:TRLOT+&L5]RBP,SO \7
M\%Q++ZJ+"5V@DL>YJT%E)LGMXYC3*+F9\PB.(T['OJC!XNOK%E+C;Q1I"G1U
M@4L>8*\#U_HBBA1G(Y[J[;KDGBENY$C]M(W"J)J<+O3((_AUZ+GBGH'7*I+4
M2QM!TW#^FUZ72)V,)I"\E@?U:XZ=&]VBVJ6SF(;Q7!J? )Q_HZ4W:4M,%TS4
MEO"*_=8Q1SC!*RSO'7N2^B6X6CL292JZ -)^Q>_8C:A9+'V,1Z($<G-N""Q*
MI'4A2![QKT%0]N)_Q-$M007"=AU9C>N]TTPQ#")I42W(ZD=:%[+DD7R%!>BY
MM#6,9FGA$5BJULT"WNLO'PE@*BSH EK7\T&+87')1H@1<*VM3?V +<3Z*++P
M>)"L<J /N-Z4/C[Z%/G1!45YL+LM%+\D3!O'.::-+Q'3(R[5M\YH]>X[T-.%
M*WF\6W'/SNCRMS7C- Q S>"(,]=B2^*82[):)!-^J<4WCJP.+.D"GSP>K@8^
MTS@3C,.D(6;<N(H9QXH54-UUB*9;PK3V7Y6MZ@**//2=WW$V=D5RB\3_<6IY
MW,80M&L&<UISIZJ>?D<#?4W8>2./B.>PD_YQ'3-I  5@LN;6U[$_D=H9S.IO
M!$#%AG4A0QX$7T<& ,$?3;YFF=AQ@/E$R*-%&>@P"'-I7UC:E:@NJ,C#X06H
MQ.[(MY0SX88(_(P+1!M[#G35_&Q)8PC%.)3WQ:+'38.J%PNZ(":/ETMZHUOD
M,UOV"'P:U\BG6!@Y JX1<-'^.N:*U1HB:,-IM/,N\)(4?;R\%B01GDG1O=6$
MNOY\Z(*>/*!>@%ZT"_ \8Q:\I6A_8. EJPGBQ;AG$;-EUWS7\5=S7$.R[JRT
MQC$N8YLDR%<50+%"+HY^Q?7DFH#Y& SJ0FS%><1U)U*D*S7+"S3C4K9!@GQE
M ?%8"K%>?81RU[M>-.]S[$M=%P@KCD5I??/,&+UHOCI&,X04".A"2<7)*;*[
M:D8@J)]OHQ</ZG1TP:+BL)7Z W5&>.3-5F.UJN<ZT\4:R.L"DS0^7H^EFE=C
M.EBY=^!^*+R.I4\2CT/3/H.N1#5!ZFW%Z3 -F+J^^2&<G*N;X\3!&3<=J%Z@
MI7E,:TM-%W(J[FUKO+YK'-ZJ3WH[U(R-NI9UX:#BH)C\<7*'H\VK+7.T,9NO
MMZS+YLT7O1E'H\VK+>/2P/2)@TD'[BWRISWD]HY-5N:,>C-.EG-F0=59;IZB
M#2/].=&%J8IKY_*8@F<T,&Z07>,,V,V?#Y';ZC99&5]3=J'R+#^I&E&8VMYF
M/IG-P)R1O^E-LS>:4=9,21>**B+&112=%MC!!&YZ\.F($NDII7J'J(;&=6&A
M(G"[?A;J.%#5VB?^(0XWJADE]'0:_6CK@DY%-'<-.NG/W_#,H[\9T^I1:>Q:
MY!;.;;8H;XQ.2J4!M=+16)L&GU[6=&&S(J0LP69N2TAYAW=2+HT"EH[;&H';
M"%PZG5(K3DZF<,"E1&(9K&LQAQ5R"WJQV9JZ+OBIGC!N&E\2%O-XPS5,8@EN
MQN*(,(7^)^2<QINY7=!=_!,DH1R79J#U*Y9O;+QK[,^:)FR^JXAF-W2-$<,B
M4OD]Y=\XC?D7J*U84S("MQD=<^+.A"-GABYV33.7_3M&Q82Z()"N3<6ZF- %
MQHH >0,8(TX-YAH_<IP*$'Z..1UAU_)&A>(1Q,WE]<!QP\SI@FE%_%[Y?HCR
M6<D*-TJ,\'T,A)A+@@/9G 8,5#=L-)=YU07NBD3%8X#;^.VJ(-.(=C5$%&?:
MP^NO>_"G"]45J9(6J"Z& \9>>P,X!N?-@6F/."D]R7H,#\V]N=2%Z8K$30M,
M7Y=$&9'=%MGO  ZXBMW"O8WN3'/6IZEU74BJ2/N\$Q#),3#F?;K>.M9<HF\?
MMBE^=&%L+3_4]J(TI<O4=J!?^KC_X-L?R'*)&R3%L_B)"YT&267]B,^H$VVB
M0.@"AA[^&=_,DXO(B4M(5O@]?W8\Z]>>X9(%_;2G4I Y#MY=]VD/>@BZ9_CA
MQ ]8$"(+7[D7+C_M(1S8!P80W3,"$ &X\%PW7'P(DF;.X1T*MV=$99>4,\^^
M%67M,$JH[.VO2T2 %B=6D!"ODG#UC2XFE%>(E;WM(8OM+0ASNPJ29SP9>,6X
M6QAVH_ 7CKTG42%X%@6^SMWO-/@*#.!+7.)S0OSYF>/=XW8J&B44;LE#3@&;
MI=)%D=&3!;C7 4P<RYJ,3T$!-=()"S:MWU/\I*D=1PZO\+7G'KM1G2L/4)?N
M31);DT#J."$85VFI:1WTMEWG^;@MX.P8W W"&7'P'?7AR>6T/825&]V@]J*S
MQ63JP]V9Q W:=6T+RCWW)PC.;SE 8<%\/V'RXN*DU-,I%GZRCJ]:S,":,]]S
MSX@EZ\&KW@Y/D,_$^N5XLR+_Y8=//_ DEV2("U1\+ X?$<<S"DYI]/^YFSO@
M/K=W_$J0.K;_%?IB[T(JH\X6G^3S;*6XW.4BGPF?@4VN0F[-A9AEL7$,O4[[
MI1:ZW!21K5+O%??N&'9CQ,F=N'&.+CAQLIOUQ""P=&A ,U&A$[1I,JZ"<BB[
MBZ^=KM3S9J@-=K"6:" #T;D-9=F4(>M1:C^Y;PFDS,T2XDN]<%T4]HE1T1H=
MZZ/P%'JM&<4WH]9HI47^Q=H\;2/*5J,[-$_JD6R00/'1C2 GO!-62$]6$H<I
M;5CS=<1V4-O7>"'MY?2'3S?7O3=2''IW?^["S(N'R]3[Q6+$ 9_"#BU\B&=G
M1M/0<Q?\,R2-VKJC?%56:,^V!NMQG(B;C&\"S_IU0I8,1!([Z/UKZE-^1^TS
MCT>'1YX#*) @^*\6BCZC?^(U ^[L<IJ[ /GJYCB!3Z+!C5+H-'6#>=LRHE$W
M<5-!&L8]B+OZ1G!&#+REG%^Z9XS[P1?\:.*GE],OX*)Z*TK%F,$F@DL_IR8-
M36U0'ZIPJI7BACWH48=*0T-7QBUU;^=>Z .P3SW@E??2B')K3Z^6_+2A./1$
M&8Z*A$B7BD^9($DEQF/^LZ/63F!0<*%G^48>V")<X,N<,:<W>+ ?&CB^<"R1
MOF\C3]Q5RMF_IO&-#GGFOSQ8Z,+$Z8UZ^=4:&)3L5SSA&;,X15Z_4A>=+O#(
M%AC:N"(KY!M3/P_!X=$W^ #FOEPA&EH=K!^=[&HXHS;(X=Q@QAT_?\\B#OP/
M'@1E,S?*.U0F@_HV,E@7+A$,F!8]HPA\90$O\$G+*J@M.52O/L>\9/X=C0ER
M61N*#PWVE<F,.$^9'\\Q'UE,;C05>OID1P6'WT/D$*=/=S2*X%XN"PY0AWK=
M3<M@OC>CO&//7V/"A8=8C"XWRXY9+=NPH=00C+CDU(JV0F+O&9VK+8L4Y&]S
MRP3L6'MHG7"UH3U+#,L@W1<76%SETA>I%NK+=)<5>,*D2%\;IUMATT$1]\$6
MM\&6$F')^I1$Q'Y-##<QIB(7//S)7'M*'.?2O4G/2\R?2MA&36K-#>T#R30F
MF8UF/CMX7S_GS)K'D]R?((:8Z!X'9VP:K.*"J;KTM/5$$^'*/B.]3OJ'"RYJ
MOE,L#@\*Y9Y^@$BO\\3 *$S)KHYOH(P%#ZZAI)U.:Q7*#;@;2)B_9?#5>B=Q
M$CJ1 (2I$+:Y?'>A$\Y[FS#IB2_=4^8O/5^LLKV<)LM^$J&:BPW7@,C[I9M&
M[*^X9U%J^WG1Y*\')U)EKX*3_SMRQ98T[A!AC"GV)[4EGKXGR<;$\G@83^7!
M?Q*S>7@2W<F9VJ];U<'9-J^*TCJC^ PXL1XXGMO^9,'\)/0#D)S[4,,),6^"
MWC3\LW.K.+6U-F2%!10W\,31' R9E>8;4<XN"HSY<8(*DZ69DGJT,%AOK)!%
M3WORM:=#"XT4^2]-%0M2K+\;:EQ+L"ON30-<);>FB4O3P)$MKW:X11'6$B/]
MFAA$BN0"NY/H>Y*E=ZKD;E=I:))FF['J1).7&I(LZ5:>Z'[)5:VU&@L/<D_3
MA7=/.4XE090@H(*1HA=56^+IO:@X47A#789]PAUX/S-ZC?42 6I+=.\]E[BT
MHV<"[1MSD;4S]@#SQ#GA,XKYOW4)&HL]B1B5H,+,&R8I5M_H [,\^6Z+ID+#
MVW3QW7.C[:P,)_')UJD;<@>.H[^>L5 O/D118>[@1=X@BY.*6"/>!'N;[$%/
M)%4L_52AWUHY?1GK?EZVRA);),]Q7*59KES))P_5)TDPD2NB8K$=S-5PN><=
M%7L64W$4"FXT:]9*G'3BB;/0+%$=WW=_[D;+'"ZGMS2)_UY.)1M+]#4W'-5\
M(__R>"I06=*UM\-A'$^K3.+V'E^5-M_*L*I48S@"7D&/X>+^)&=U3?VEY_H,
M&+LB/+\V7K7P4V6P4ZDNIU-FX0[?+-72+EG3IP']<_;65LU6P>.>?,+Y:NKQ
M>\)M_\O#DD4-_!\EJ3?3HGQWZ6;80G_1<&=<+N<<WYI]ZZ4RE"-=\HF=AG8&
M.><3<EUX[@S\[T4NKE!T7QM+#<]KO0QA8"MO1"U)55ODZ:>SP)K &T#J6'Q=
MN'N VM]")V!+AV6"J!0<6B(8QC2+VN"/^!;W[G_@;E?GC$YX"!W:T<'ANZ*I
ME$L/#XAEUH'S4_"WD-]F.:L*#U!,CP?@IMA_$#[Q^'<,?!&'TQLO!/SXMQP^
M+US,$&*&JB1SEYI#5\!-" U.0]>^ 0[JY)47'$#G$^>!,4^&%WNMY\1K2PPM
M*U1MMGCW "Y02]:<E.Q55V* .(S9/7?_\'!RY((/0GRY2!5E!H$^P2#.?(*\
MXK_3 &:P48(6W.WHU$!<"(+'*,PXS9;E]6MBJ)DT<5 BPX4T(JZ!(R%FA'(>
M@%@V)]R 6XP.!QCE=K*58XEZ=#3T-%M.*I&O(!(^CURDX@?1K>K3?R?7A5.[
MXOQ])I3\Y=#ZYE2:Y*S&RVE\V\*YJW@*EWS2IK&]0:0B,WF28XU6\6D-@-7O
MGAO_:%)&N\H#D_R'V *!613U_LM/KD)OTHS>QH>A.;'N4K::N%V(2T,[ XAT
M";-]+J\I/^8<NP<L^GF5%;F*]AH**Z/W@/Y2LA71%[W'+70K\4X<^((B[$11
MS^,@-VB**$."G%2A@V"E1U9'G'#0-_2JH@7\!->T\!5*!*?0CY\1QO'(WE:*
M56^RAX\C&.D/V>B>B\MI>BXQ]$39J<3)H<0575O'RH/HNM(%J_D0LSPBK5;T
MB8+1E0XK+F>[\,IK!=:>#F^.^9,ZCG\&O8KWF;B_OA\7!:A\^_3^\D^/_Z+<
MSW<,V<IW^8D,[:H,,LB?.[Z]=/3_@3F%ODZ<TT[-17:"HU]U,6!<QC9)D*_J
MN7AA!7B0>+C[A/@L=])\I,8GYF%PJS.ZZ",H9/Q[M;!%^GAI^NE.0''A2?(9
MFMP/!3B6/C%)[(6KXZYSN\]"=ZI84FAAB_3Q&KH(L?W#M)E/9C-.9Y$PWC1[
MHPJ@=HUMI99@VF7Z!,Q<=\?[9&7.J#?C9 G30*@Z8_F[E=6UJ(/85FI9]5N4
MU-@B>7O?TMVDGOX$ME>;\0]Q UC-U]-5EZV;WUY-=KXBN:5*N]-Y'KHMW-:8
M^T)IE*<P81*O&<2ZJ3\/.VBXO[Z''710WUX[J [\5=6V2/)'N&2V28N/P<+S
MLTC_ZU(UV44#(\_/.ETOJ==EE.[T1UM470?_M*999^?Y64IUW&W;W/9HZB@/
M#Y_!A .[5?3$T@N'S"5F-]#5$D("+R*J;@E/S&9.B#JYIW@(!<;BHTW(J)X%
M],TB:&AZV9GV98\Z:L2/GZ!VVSOX6R+$,T5%L7_A*'Z7V<%F:#Y3G2MV7-W:
MW!Z=O30G\9TE^*DFM\!D"</XRI>U.2.)+M50QJ8^.MNO6^9")SC#G9MKXO=5
MIU+3VZ_!)?=,L?0J_3K[*JZNQ>W7EV)GUUA]>S3Q&CZ%]+[2M2!E]D85-^W;
MVU9=*6*EHM+V2/T&OWFQKT4,.C39U)(]7CHD#JAF+U7QTK?U9Z!'12 UU]\>
M7;PU9YYGWP/#0I;UT=B/%\ACMY$65<54W]:?DQXSIYPFIR2;)'?Z?YI^TJ?<
M#B2?I\;77VY"R754GI%>%7M)]7:V1S?O8*;GBLXJ.MXUFOS%9V. M2>!.15W
M/<((P5R++8ECQK=6";^K6%05@YNB^JSTKHC*-BUMCW[>FXXX=R;!P2(Z>Q3]
M7+0_ONL4G^O>[A;J+A+'\GSU+[.^[M;J +\%/PMPAU ,U\[Y(@2N 4T]J6RK
M7D4:V^,VY@I<,Y@C8%S?<Y@M/+-X([7ISRGM"L&.)+90HU%"CF6G<H'D4:HN
M\))43)REF49'<R4U6VM6!ZDMU+#BB+I>?FMDK=G@4/6\Y21-"X6MT&<ZDV=,
M;#Z*A,%OXJ]TRVF2@E+!5L?VGJ&NFDLH@'%S)+=#XPUYT.2/6A6JM_%H.OFX
MCRI!XRX(_/Q_4$L#!!0    ( -.!9%(?F797&Q<  +"( 0 5    ;G=P>"TR
M,#(P,3(S,5]C86PN>&UL[5U;<]PVLG[?JO,?=+3/M"1[8\>I>+=TL1Q5R99*
M4I+=IRV*Q,Q@PR%F08XN^?4' ,D19X8D&B0(].BX*K$]) #VUP"Z&XU&X^=_
M/,V3O0?",\K23_M';P[W]T@:L9BFTT_[O]X&Q[>G%Q?[>UD>IG&8L)1\VD_9
M_C_^_C]_^?E_@^ +20D/<Q+OW3_OW<V6:4SX&9N3O7^>W%SN!7N'[W_ZX<?K
MKWN_WIWNO3U\>Q0<O@L._Q8$?_\YH>D?/\D_[L.,[ DBTDS]_+0_R_/%3P<'
MCX^/;Y[N>?*&\>G!V\/#=P=5Z?VRN'P;YZL*]<(_'!0O5T6WFGY\I\H>??SX
M\4"]717-:%-!T>C1P3^_7MY&,S(/ YI*CD22EHS^E*F'ERP*<\5&+82]UA+R
M5U 5"^2CX.AM\.[HS5,6[PNN[^T5K.,L(3=DLB?__O7F8NV;Z>."+LB;B,U%
MFV\/C]Z^.SJ0Y0X$S3F9DS0/4I:3X%UPO\QH2K(L$&7O::K(SX(PRT@N_HK^
MNZ2<Q('H>D%2>$\3FE.BWB_GXGE,\I FF>"!(FG&R42,CL?%4U!]5E+]UW&_
MFC\OQ)C,Z'R1D/V#&H>B,(F6B6K\4OPNBTL^8&!6039YRHF8,V7/5I0G+-*P
M5#[Y]TE)S^D+.3<D8M.4_DGBBUA03B>"D(0<*Q*/2PJ/T_CRA;[C@KQ3EN8\
MC/*B:$5D$MZ3I/B^@Z\5+$GD+&*\[$J?+%ER+BK47T017Y)ZT=$994 #>O95
MO>Z5?QU$(&/@U4*J5J&'+XE0!0Z9IOTP:D;=T.DLOYK\FA$WL@SV=1.6U>V9
M29C=*^-@F073,%PH'75 DCRKGBCF!H='I8WPU_*Q58R-G!S_0[O-M-,PFXD7
MGT61AS 155TPL/VC.\[,0I 7):\Y680T_ORT(*F8:&E\E<\(=S9(C6EY1:P7
MK1 QLD1-YYQN^/2K8.RZ<<>68LY>A\^R#7<<UM.PVZP^(Q,B@,9WX5.[(>7^
MP[O-U(LT#],I7156DN]N%J9?&(L?:9(XX"^8AEUG]8,HS_BS$Y9N?&NW6>=V
MOK^Z2?Z-I=&6CE"SS $W]1_?;>8J*"\@G5FPG=_=;99><R86Y/GS=1(*8,5*
M:"&]N [8JOUV%VMK[NIC'NTQ'A/^:?]P?^^12)]"N3=3M!/R:,N/O;Z-4)8X
M$'3-59L!S<F\JC_A;.YD <^\,EHP <3DHYUGLE>O%I3-;W>>S0@L6"BSWWUG
M=@_W&)2[?_O.W=[N&BB/?_C.8_CJ#,K4]]^9:L^C"V7ZKAEQ38O8D3@/\8^]
M5C/.(9NA"^G7:LHY9+6A1_VUVG,M'$<0(?-:;3Q7' >&AT#9_&''V.S&(@%X
MZ* ,_G'G&>PT_O"U+D_\"61MR-T+RW\^V.3XI?AM.>SY0S M72LJ6)>N'#!5
M+*_J&OX<L$E LIS.98![$,X9S^F?19>18G'0,P)Z/ )<!4./C0 6%VUG]^&<
MIF(&7M*';5_<<8W@:CTXR0G_%PGYN:C0LJ=@H47WFS!F1'\3/73W2)('\E7,
M[EG;II6=1K$SP^IPV+61H.AER[;MX&&-[0+X._%Y>UV_UMI.P']D]L"_M(4*
M^C?2MGT,JX1SWQ=(.[,[F3%Y\YQP8$N68W*RC<V!#N,&D^=K;#9T6S:8/%(N
MIL26F,>TYG;"@&TE[W@-_*,\8TSD\BP2"WF:%\=663H5TW4NUF3W>3!9YDM.
M@@6G:40781(LPF?90"9KK1?MMPP>E097*V$'(%PNAL\$%1=IEO.EI/ TY/R9
MIE,QC)>M$720*NZMN4O!USO!5TG=UU!T@/([W9"*]U>3ZZH_+E+@:M9*F\A9
MH5O1#&ML%\"WKF>&-(5S!0":NFR4"8!I&3 J&P89/"Z6 ..C]VGM1"S-6$)C
MY8!>/5:J-PJS63!)V*.!X6+4G ,;I <]@W*.G)$%)Q$MQFD:"]-79L%I"A*N
MF[X; M5"2Q92$'P):7K)LNPJ/:/9@F54MG\U.0\CN4FU>=+*I(HEXJY2,2V7
M7++EFK.(D+@QF8&FJ 5BJB;/A=RX#1/2S21]:?=60'T(74TV5VDM^AY6"<5Q
MF9.03\4PN%[R:"8FD!P2+QNXG=;[L,;<@Y<1W/+_6@CW#1'*BT;Y*KQ[_4&M
MY#7AE(E%NEBJ"6!GI/A;_$Z6,N'9YR<!.)V2&R%&/T\F)&ICFA\B_#!;3.<'
M*M3%R;.0QX)L&8"<R?"?XRBG#TKW"V$H])!XMEQ%!PFUU,&[P6VZ9T45J"KZ
MB<W)7?A4NG-.2$HFM'UM#*KE9;-CI6Y7YMIU:<&U[W7HZ[B'LCV3JH#+*G9;
MG[2B5QN8H'9GC #70P)I(WZSZH.7R$/MF6Y;S6)@2!4_]3O-9Z?++!>2I#B.
M ,:N;0$#S.IDBTFG-M3! *4\0E))?Y-$1<,:<P_^&\F;-'JA*]8T>@M@\P;0
M@&PP6\Q =C2 &>1I89B)9UIKSTZC:)BQ4A5]>[RC 2\@"\-4^C3:<6R7<4_J
M*AY>\+2@IY2#+61KR[N'<+WRCRJ/:Y8MI35]RK)670"HX0_&#4FDT_&.B56-
MM"MF+)'+UW/&;V<A)R="=\6G;"Z9WN0#M-6</P;<L3(.OG*A$!D@<#51Z_\R
M0EX#VJ0)!$"!?C-P/0203-/%F#?@ 63- ;MR"]^2/$_4Y@#<:NG?D&?0I:2\
MFM3WJB @.ROZ!74I!800#2K*!("EL;Q?",5N@/&4,V_!/<SZ]B>DI[3E/4/0
MSQM=<?< C.R._E:%-EPC&&VKOL>B@O5RG_2(SL"*VL8&5X]P#:SL&.#IQA2P
M/8P)'8O:'K'8N]/50#]PCW!LK#P ^@$PI4\:!ABBUWJD9L#6O_#(%TQI$H9U
MK4D\"A3U1_2HC;;0P7:+B^C:L13UH#Q"1XA--O,8.S!J%X&T(_1W[QUK,&/>
MX1T.-K=$P?QP<<9NP.RP$36+*6VAI?U!UNPNZN.TW(6E[Q#V]-YZP'1F8=QA
M8^1E[+$JWNGQ8L?N]"AF>S##**Y]%U;/-@>$Y7F"2^NT>(^LQ;1@.@8WC"L6
MX[I[#!7G,Z@K/JUAM@P+;]@%FP3($.#&URYXW V'@#:*9P?\ZU#(L'WH7?"U
M Q$;G(W E.S$7C=#0B=Z>-FQ]C=L]QN3S>/IS)K>;M)&>F.RD=!R41M8C&GY
MCI:+!MXA)VF:/@:)!)=5.83FJWP+*G>0?!<D+S[@GHF8!G[%5:HE*V0ZSBR\
M,@HJ3_US912<+3N2AH*J^3TUVD09,#FR>1OXH,(3(/=J!A_@@=V*OT?UB8R-
MJN,$J$E6;%8?*<2NA,0FM3TD*Y/[,*3Y@A6 XC"MCA<@1)$,:@LO=&@NPH'-
MX66 I6[?G1[7*)Z^S> &W)ECLF\[R"&W9Y;LUPK.I)+@Y4N+^]10AF/R#HT!
M?5@6?4<YY,=!C3UE_"BH>^<*=90=?AS072E"_6^3C ';3GI<%P+=>%G!K!KI
MF 2\"U;@%_C.N(!: ;CB FJ%X(P)N!6$"S9 %8:3C:FC#T$81<OY4H4U!4S&
MW0>BUH*3&4DS,7&#A&69>L32*B4UJ$J_/2QW!+G:[G*-R.7.V%5$3\B$<3$.
MHR3,,CJA41$)J(+0[\*GXSSG]'Z9RY-.=^PZY.T)(H8UYBF7U6F]5UX.(U<4
M7\O#&T*,&7#!3JL^\DZL]YJ,)CIF$2TO$BZV^WL,"VOM(DT&8:O#V6@LPV2Y
MC\ M&W+'G=I>NRGB/DSDXC3(9J1VA,/P^HOF1EQ?>M%%A4N5MG$ZMYPR+;*I
MN["'^Q&VCIIJZ>\N[P5"9?A YGH[L#ZM>( ;Q^IDM(PRIO%%>AHN:!XF@MXY
M2V]S%OW1AA!<T0.HSNLX/.<.++ZOF1=-9?S<VW"<;@9.'J\N=_HM3%J#"(SJ
M>H FQBG-U9I84JF.$DU)&K5G,034\ .CG&Z=G=%2S ?!+:F#9"1MYYPPJ(D#
MULKY8HZKK2J"^TIJNKK].G-@+2^!7SXN9Q\'S!?&XD>:)"UD;[[V<:-!D1?P
MN9VW344\A%]H+P)!<:?'>@H7)<[E 5#",ZEBMZY1,ZWF%5"WD,2T0JB?T])0
MW5[2+]DRDQV8\NW"'GR=S=L:W>R'54(#1MLIX'J^(6VD$ +!::GCR:U>:G=M
MCW25]41ZW=0"T=]9P4>F[])XU*YJ.DIZ(5OF$FO,(=8MI@QJ>LF[WIR5I=VD
M@U3QLCU4I2/6+C4[R_H@/0]I2N+/(4^%N,QJSD6QT*)11W9X:$4/6=:AUFL_
M>]5?F%OSQ&6#/&.8=L"T^(SE&::8-'WOF;JA,,6::=&U+\<Q18MI80 $.*;(
MV(TM"=9'E^(3$8U[W7";'Y]4: )D0:RYF_B-/:)?PN";^DU FMV=F*([VVDW
M\3!C$EP=;KGZ' %$*6 27V!4D-@%3&(,!DSKM<0DV&"0S/?8,,D\&$83;R=2
M&=*JGP N*J0"Q*"GAB)S+$&:D!GM^R(5(XTBT9*0=RPM=-)]Z(AS(1XZW#_K
MRKA_O!TFT0&#VQW/@TE@ +O/,)@0D^B (31UQ6*2*#"$VMT83%(%'!+1K 3P
MRH\^P'0>=DSRI \^<.2FIU,4J\?JY!W;RF9O>)Y"UYSKDQ4P>F!G++:98'+9
M5[FS9'X_F,N-L9-!%\UN;)X-:\Q''&TF+#3IRE/3F_ '&I'L5LSP%H#Z"A[B
M,KD85]><35HW9AM*^(C.K,QB>3ZOZ8Z1XEC::C%'LJ\T95S,CHLT)YQD<D=B
MO95""'\E^4RF5I9)D-<RUV\%?SJGP!>;6R^<;&2)YGI*M^07C-ZX[W:+[,92
M?D*.BRXO.%D;)V=4YNA.VR2)04WWL!IOFMX T'$;M9=00"W!'24]Q<Y]8RE;
M)ZI[V,,J^8@8RG*^C&1>\W1Z.A,:OS6PO:NH#\(?2+HDE3K8]-FOLO/+O3'Q
M7]Q^ G- 2QZ"H4@BVIQ^$<*>AXF0.,?QG*94](P850^:06A6&6D6@B:+B)F;
M>9B6XAI(@P=H#W_*B%DD.F0Y&S96,?4I$&:K?=_#E>*]S_0: I,[5@-JO+O!
M7;@M?2R8-O=B@>8.IEGKF6TVG#"8?+"^1Z%NV8!)''GFE?&BML>^TW@*RCOS
M.IP:J*ROYJ4_,W0K81+90$0>?(<H-HG6DS%2A<+*=E%7PWXWCO24N4S3U1!@
MHDD)!:CQW:^H<] U,%&&3Z0D+B6:/"B1'<?_619SUWX>3%N?P\- V:WR,-IY
MPAY_(?&45,LCE4Q],RFA$)H28-\4HL,^A(MIJ).L^ENDCI$B<^01U</RV:F$
MK&Z$&29/"43;,I".PV05&Z*R*F;<V;TJ;?G;0#&$/TO;+Z/35$UC\38L3A,)
M4S]8"%-11G'5BX;%L1P+UQF/2(&KW.^C0W"<&5<2=<+2909,+-M<]GM>W/X0
M?@L+70JBOZ6PCRR&G#ZH'29P%T"J>,E?N'T;5#<02!5?698,IP6LDGLPOS/^
M!^'2OR^=:Z7T!G6.04V<QKZ^-W1WF:$_#FP$T;A#,6WL&"&%R'A,.S%&X.#2
M']-!G3[]UV4B0;$Y29Y@@LU$46!>UZA;EA:$!_=A1J,@3.,@ILE2.L<+AHM_
MA ^$AU,B_>-SP<%L)M9N 5OFXKNIC!\*)DQ>WE3MCY2-9.43>;W3:L?$Q4+)
M,R24*R\4/'&YE/N]1'5<@/JVG-\3?E9 OI7(LJL79"\>J38C:EAK'NS%)H*O
M)FTDF\#6MX(&[A:%)W+TFX'M;@.GR=RWWYCE$8_)QAZ+)[ 1XM@$^"&@99H]
M*?RCM7L7ZV_Z:>.>K;M2C(/(<ZFC5JD097*N;$9B%7VNW.8W)"/\H?5(A4'-
M[W<RZ F]"1^_BB'$:9B8L5];T2.HV^5BD119<>" .BMY!".='A?I-6<1R<P0
MZ6OBU.&-4Z0ICRIP#&+2Q6!L@.&(R;L%Q@4=E)B\6V!P4)WDV"9Z'RS*5+=J
MY4JJ/+<OCQ>)6CZOO>QG(5GYEBM[R2*Q@U)L=&4B_OQ4GE4[96EQ5DB 5S-H
M*FSO325@JSDO>Z O29L6G$14=;/X=T+* */CN8RG^%,];\78OFMJM7E$MT6H
M W$ML&&5D)U;M3:(FY/86>Q_#*;%&-PR&3:.E=G'()%;G%GUE^A*R>0X$,S)
M9Z3CXNF>&LW>!UVI-=L4#])MZQO23>JJN82)@.WZ=/=]6=IR2,)03.)/<) .
MNZ<,4,/WA6NZ/M"4]DV^H_OBW+L+]%.W)3K&RLT8HVMT*+(1;OUPTVO;,T47
MS82YISK1@$2$5SM*V 29'0.IL24_ED\'*2XW.^IC&9;Q#5 #E7*OKYS,%7U3
M;??P%&4R%5(+@*WWOA5[!ZWM!3VDWYJ)WI5)\75$MQ=T3_1O(:?RM(Z.YM9R
MN$RE]C',X/S'H&]!0#2=@FG;I!,'6 M@VBOI1*232YCB?<%= ]9FC@V\H_=E
M(H<@EPDZJA\J'E)"K0<T#@Y3M?,Q5V:B36K=ALT8YV4Y$__(\M;0/PLM[D1R
M[7/QDT[;C-/A#>X$$UYWAO'_MYD#;8U>3 ;>[K&T62QZUOFU<Q*;T:!5J8 4
M)N7F&0?K)L$HM/BR&$8$,VBWK;HD\)S$,@GPK40A)L*ED)@R(W Y[V'7)MAK
MT,-=)\5IM))JZ 41P%K^X!3<-H6CJ>4-CMGM';!*WL"LS0Q#3+"Z/E([K$U^
ML_XRJ^P1G(E,[%?9'[BUD=4/HDD3K_@&((_IMF""C_748YC,_MY0320H)@=P
M_[X%*74T._YVS,B&V[#-I1.&\3XN3TPT+H;),#(W#%0TAOD"U57;,F%GAK\!
M1-N+4,\.&3*9D"A_2;*M' 5<5%%!NJF\(Z5@FAV?2]_/^7*K#*-WD.?D<_7I
MU3"Z$=^]6?MLP\TB#;F];35G(0(:0H5X^#M-XTF8)%>I.M%_+XB)ZUFV^@(T
M:-H"V!="-HDHY8:ZU%H0*9Z<"FE"MW8VAC;SBI<_(Y._SNO369A.Q<"JY+XH
MH/;6,WGS?:&HDH0]RBUX'=+!#:-ARJ:6D]/MC(I9*%4_#1,S3D!;0P._9>P>
MYS6C8"D/X:Y!,F/*L&^@8=4W)K6@/.=UGVCNM^S1 AJ812*Z50*>[FUJ<&TT
M\)I7MAUI'WJU@M/E9;#V&81[QQ9#5F5ZCY7_V+>1Z5>"@XVS'K&2_E%;6TQ@
M"K </MYMJ&LH1URD81W.$;W>AN)]CP/O>$M-*",^X&#$(&L&BO7'G<#:>Q&'
M*!BK<-BJQ#*I@%;^C$M$RNT5*DRJR/#[5IS0@B$8RS(8*\%8U0"]XV$LQ1:A
M#_)\RG:20,-:%GQFM8_5<WFS-.=AE!?32D\GI*J_&(B5&*F1J8EYZ*KB#\A*
MT'5E_.DNC(#X5;8T*("M"@A M"?X["J*@/"7(UCJ>C_.GR>,/X8\!H\G?0L8
M8$I["(RH7A@!\:NU:Z_^Z:Z- U[UK+0!ZU:Z6,"7)F'V61@2[)E4)J()!X9]
M  &3P#L=J+<RFFT$/1)L:K=&C\SM^4B31!TOR<5*1"ZU*T6U_ML(9X]VL;#D
MFI-%2*NY9@:[I2X>:&9I)GNV@M,+KS$E&V*M=#8;)G^['EVOY1B&@#H+'6A)
MAV)*33" &PT6(B97^A!D0&L>DY]\V+#6&L<]@D#'VR+J7$YV(84[0Q&*8BC(
MSG2T>!1HISNI0=' _6D8>U&'=H!!B%&Y#H5K-=&T2STZ#'CO]0Y6\0SGP@[-
M93@NO<O<]?;;!WD?9)7T/6#2A%.']3F9"=$B@\Q5PI_:[A&H?,\-.#?4.-N"
M<PG'98JEVCT!RN@_K=/XDA9$C'J:DFH1="U?JU61JG/-LIR3G'+%,"G9B\M@
MQ.1H<1LX^JK76SVZ@-EA#P*X+*+%0BJ;G0NS^Q<23\EI0;L@M0K*.I[DA'?
M[=<*LEL\AG9>\^4=XT\/3&K8!N^&#": RBY?R#]DQ)5X\G]02P,$%     @
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
M<<%UH@%&>VB:.]  T7QTD+U\(:>3+>3T9L)B?:&C\07$.B]TU+]%Q Q2&U4
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
MK5_)Z,(AIUHVKXXPE(U(&3[ZV+<C,46B5M98_QB=4\T;ZKRACJJAKKL^YLR
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
MBBI? \37 %&&3#C>(OD,^TD6%]PJ2I4>^EZ*?'US<ZXI"6+2T0*A9]LM/@U
M/TC5!@>-2'*6\@M>_O<:?@,J%'RAL-NQ-)?'/O>]2[T*C?W1+4(^/QSJ,[AQ
M8(O>YC)8%D2])%*))G?[Y^M:SD*O'^QG8D"+?(K4!F3Q=5+<U.4B I-E\71?
M(*FH]@_<..,'PF#[ALK059B &XK)N/VRA:EZSQ/^Q&[A'E'2&TLV0$?]H6YN
M/41^\/'1+ 4G]4_)]1D'Z'XG!&GXC(@J$C7U ?2M29!_D.QG\]]%>93AT@,U
M(=U.?EUF;[?!A@-_Q-R.2+_CQ0LJYR*M+?-J/@ )D.<@+$=A4?]0)(4P4SY\
M^PX/LW$($D#AJKI2%]31/;6U.JM'<DI&<A^!:G>T:A>P9M/@6']HG@T[WZ$R
M96UO][H]832/?7W<_>3ZFM$#$^UK1A--NVB2@D1KH=8M6IL19!C!D%S,"GYU
MA*'"12H<H8]].Y:(,N,5;F$G<XO:1]/X:)K3BZ:QH7N/-*"FO7HZTL@:XS<,
M1A%.,YB]>:01.&V-3R,-Q.G9[#*RF!W7[JN1Q?CTZN,<693/D/8VMS$P?P.)
M/E4B9@0L()R(]9:\KE$PQN,ZBH-I29>/A/&1,$I1SX)EE(KDB@5-K^%H6UH@
MY39F@8H2OTR!YWU1(8A1?,4?9<[D!MK^6D^:6<\>2(7OP6U2?,6,4FU']U;S
MBRA=BY3%A9WF/&9I6KRVU>#/1O8B!4<;<8#N=T*0A@^B>$;B/O'GXNARF^WN
MMF=R!P9QB^$&GH!43W+:6'NTXVAO%/[PQZ"\&BXX4!^IDDJ%!O\@=@EC]^QU
MD%Z;KNZ!%0H$WZLIQVGJJC14&!8B,8O5$H&N!%I8>K8Q6D;-'>7VX]Y)[YWT
M)^&DQXIVHK7P1!&U8V91-WEM+^W1QC\,P:3)A5-TW0+"0%\GY:$>[>FC$,5A
M\10:J?.TCX_V^A$=K$<D#TX?ES6%O>UDU1&6.+>1$3Y"R4<HG5Z$DAVKW$AC
ME,SM,VY=IS]/UEM2)BP))WQ7DZBCY]1T6$>.TW9D=?";%IYTN2GM(]L?7II&
MMK_^X\-_O3"'O/X#)9\I19K>E!_W@[JQI.2@YGV- M'LSD5UL.$JW9ZQZ^0?
M0A5621[X5U;]BB>Z?6=+92JS(RLE_/3R&*K"T]MXRO=<+"1;+T&<C"OW':KM
MB$BV[@+!D;YCSL<$51PC5%OWINQ=<:Q9HF[QV?Q9?;]]<;\:$[=99_?@@)Z
M\S!5Y; J*#PN7UB#L,4(@\!\4X_U?N2:Y6KL0@C(Z\KS_M5A,OYL[YFDX-HZ
M&<\D[OX71F(9)7QMKI3QO,AGZ8$AI !(QCF!VXNB7LLG9:BU<P0I>!;\4V[M
M'_8QM2*0VL+]<UD*V[NG1<>;:+S'S'O,S!![CQF:U[S2Q4?J%6MM&T+BI9:X
MW\;:Y]8/^.L$AN(3,9\$DH=15OC'XNTS8<!%'KMZ!-M_P)%OL"N!/KO2>^5
M4KJ C7*=I,!ORFSI)Y[ &=^^:*K^>%R=I7Q^(EGL^$&5=\S*@+T!N^/K\CFU
M8RK*YQ+.6;J\BL47/"B#P:P#NI6[CZM+Z?E'5?$RJ0(WRK<_;ME&B1K7R4<X
M\^]^4 K1LK*(=C]?L !]5P_H\JMZW(8K.N'.O8H2%79[HRHDI"!JS.8E-4#E
M.LJ>OP!S#+/[:#:\X>6!N.=))*1ZJ43"[KE3@425KO#&UC9(*A^5OHJ^\O!\
MJ9Y041M=3Q>NBP7B'M3SGX(E]6[YZA86/OV9QW%Z!>#$&4O^_#BM)T'?THV7
MNO(QZB//M.:QZMY)JWJU_)BT^E?-^R;MU2/E1V35O!7OA*3:N:IZCIP66</[
M]<X+P7AG\=,XQ^L;#DVTUKFJ:SHZPH??+L_%'UTUB=J&0Q-]QM(HO5]+SL)9
M\CN3D1++X"KF=27S3;L/#1#VS(L7[;2 7C<?&D!S58"&YJ,%0.V E\73HF#[
MOC8*34V?8:!\YM%BJ72P4N+>J37JO&K ('H-47BAI*(H UFOOF&;NP=PPS,@
M*9W-RZMMEF=IQI+B66@=M\)V&P!0E/ =677$5S09EE"$J-?4G : &V6:E5HV
MB^UV,H"&OS^J*-RJTV="2O$%SBUP(_C+*]-HER%H +WC:A& O"Y0FP>A ?93
MDJ<\W-%V+E:KJ*@F>L7YZP>%$;B-QAM@"D02JGJJ<!<]LN3/V7P.UVNH1(*;
MZ[/97:6VWZKO(- 6RC*H1)]Z!*^:N"?TCC^)^$F=B.?,03?WJ#X^GGK(>.I^
MB#W6S37"3EVS80G62@'U#4=%M(FPXD/NK83<OS;3BP93.24$"-NB,#424<2G
MT;R$B66;(K9:=BOP_(TBKD:=6;152T>7VF%F1B 70(]>'6'@T285<-S'GJ40
M*&]Q[XYNUVIO ]%*'2*Y9]O?C9UV*)W<!IS>0FY_:NYTT<E00G*7MI-R.NU0
M2_'QEE([:^*!R&S+.IU'-$99D=IO6)V.PNW<837JP_&0$"R]BVBS/&M#? R9
MDX)6IP4BQI34X;%C3NATM"R]0^E3)GW*Y.FE3%:IG#@_\,A2*(W2%T:6+FF>
M N'V2K<#T%:ZC-MKP]I)Q<6:(<%1>ZSXIC:$"PF(RCO#[0+JD""IO!9L([(&
M"9G:H\#MXM2QPH$[30./%AVGBP4Y!A&H19P4%CX5@:AZ1]<E*F#141&)JM%I
MP^:Q$*D(1<UA8UA$5$0=VWG[6/Q4I"&;*?Y8[%0$I]X3_P\3XJ(NS&^3N-!(
M.E9_:1K&48T7'!F^DLO;JN1B)[AQ&A25/(&)WRL-B<DP_;0.8?L!K)^__T$;
M=VS4=P!HX3_SM) ;TRLA/_(O!WKAPDK@GT%QR'2O\;8:PSW48S/,G5(89O-/
M*9^F*<^ X'R5QUMF+;/H7[JWR-L/Y![T]OVE9%%0>P/:7Z$\U"!K:#TT^2\F
M&P6BIL_04-([.!!;,V%]Y7Y4'Y^T<'I)"ZI>ZVP^#<5:L0_M!:-K.CK"?2[
M(%'+[6YP8;()W<*V&*'10;HA%[RA72;126@E%1?0Z[ZF$$3E(SU\I,?I17H8
M2.XC"^VPI3J.+.JCA1XSLK /(\W9K7WWW3O@@C)Z K*>^"3:VZS3HOSUDH<+
M('?" O@SD-#9#FSK<X[LQ7;)]79E;U=N4YELMP'/0::0L-F4O-E0,:ZYR^B!
M#%^^Z$#=P==W%Z5_:BM=-G>A 23]*+(+GD:+I! VTG^4S.ZHP>Y1BWK+I+5Q
MAYP2H!=N$Q8W5,G4-Q\"@&:.M28W@YX#^&>$Y$#=>2XE3X+-SHVNZ.2[C?,@
MSD N"F*6IM$\XN%%$5JA*=;?S^"#3<[EUV"I$J3@QR],AMK%QG1Q#V2[[78[
M44GU]3Q5WY@"\=H[KJGY: $,?T%_%"!N[YB9]AAH6GK/V>EYSCXEDI=9!^6K
M7"\8_^$V3\_X'/[VP+[6(.HPDG=;.7%;-5P/PI034\2(4BM$&P5QM!XYC%1
MSO76N -%!S&=E*O&WND\$4^;N86 W.Y%<1711O<@N75M,ET*F]@R?VH4J=UZ
MY[PSW#O#3\\9CK,[CM0/;ME\/%*W>&<-<Z3.\CZ,L8Y]ZS],),\B6?YJ';.D
ML_L</Z(K#[DI1=X)_K:<X#5OP!X%,LVR)9?G8K66?*D$&L7N8=]Q=< 5\PO$
M(E'L[Z,*?X(-)2,6J[]MRZ2\MLWU]P$+P!4=+-E\8%FP5!&FAS38Y"J2:7:I
M KZVOYW-+^'XB@TO-8;H,5?'MO*I:8O#.@!Y'WVU#Q$]J . #SQY6(H\94EX
M(>*826LHS4:V /5"W1<\/![^-M:]&XWJT!]A'W/UG=G\.@&1J CKGJUK9[OM
M&!;(KUJWPVJ#]/-Y&07+[7;X',5QL26FV54TSS;;AE60;(YK >9'D?P%0D A
MGMWM)85[ILI*I_J-9-C5!K';=8<O![OI$W*SW25G/(%_9.K+E9O)O+<%DF?S
M>12HZ^VPVNWW3N?!; !2M[6J!9*IVJ#;&-F(I_7[!-?# FF'3:A6<1N<7$61
MMJ$%0NYYS(.LZJ2W7WM;8[KWYIZQ6,7+WR\YSV[4=_7Q(DW-:0#0AEPT=Q@U
MB.$C1X!G<RF58+!29Y>5ZO(V7O]\;V]0G+ZP3]3'!;8<AP9DQ;V*O)/Z>%9,
MIT' O+ASC_3![6]GCW&TT)5P:#<(";!IFJ]*B?534?\M#A35JIKA2[(OHK3(
M=M2^<FUY?-I3!$K_KK[:MKTJ5:HN\2!31MBR2AE<\;E,9HW'P\EG*4SH%8OD
M[RS.^6R.81LFO2G JUX>-#Y]]P$*C2B9^7#ME/.M#9%$]' /X[;T@$Z3TLAW
M"W-Z,$=7*%Y'VL'Y%D?2?(OW])7!IJL@\CG=VJ7'=G,/Z+FBI>(I-(*_OC$%
MXK7R<E/ST0(87MSW$=<4HEE/+O2X@>$(T[--$6.C-468FRU&&W2,N6'(A6TV
M[CUA[M@A%0EG[SB.)$P3LZ+M9#MRD63HS=O*F33:*'*<C9L<*T)<$**%TX<D
M-[)S<8Z$(^$6UMC4X$/(?0BY&6(?0OZ,BUH/&R,G(%B8!,/ LI'%F?<4-#2R
MJ',+T6!(Q*0>J6D;LH3$2N5!&B>&?.2<D'JHIL<H:>1T4'L+L(O3'PF9WEN
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
MDPMK[PWZ*W6+7*!Y'] UA@=RX>2=\;^2QMT:CW^=P%!%>%P@>1AEY1N+(EG
M$JQ MGC,)O,\RR6?K&64!-&:Q9,UV^R?CW[>M)W]N%<:')F0'6#P5N2W946N
MB5!\@%UR(UA2'Y58W<+"IS_S.$ZOF%R(,Y;\^7%:3X*^I7L-_@).U762PBV@
M3IPFPJZ^X=!$GS,I-U&RT+YLA>DR-)"/;*4/VVQJ/EH PX>;[K)U02!A2<#/
M1:HS(C:T=D^^$K)F\_/BAKUB@<KUJ&+ V.8T -RH6UUJ-Q2VV\D &OZDW(!
MIBY2=9:W>59U6.I;#DOV!P8"9Y$-=<=WLN9L?KN3/Z\3I+/4RIC$IZ+)8=9M
ML#& KW67=1EJ6."'5%0$M->-O7?,>\>(>\=P0?X:I4:8BMT4\37*>:*M*#4Z
M7R=6CR67O]"X^P3"ND'*D6OG])U(<H*92D9N=Z*YAC P@)'<K39Y::>]:\E?
M[>-'?/S(Z<6/6%3)1QH^TETK'6GTB U+Q$B#1_#>C9&&B* ,[B.- 6DTDXXT
MM@-C0W(6TP$W;BKB*"P2U/:_+B(, I8N)_-8?#$(SS :KO](BQ;D^* )'S0!
MZM@%7TL>1$64V339\=>JURF.X]%>D&AA)!L5JF#M;D2:SI*+*%V+LJ#!;+[3
MOZIH1G:Q1-PL@3LZEVI:;J4(. ]?KC6FJ05B=D-> 5>_9S'73U)S:_>F]6GX
MSSS-"B;W(%1!0I#K8@X2P74"?)*K-7T0ZFTR(/XI C9WMH'=%UXG^V+HTR"+
MGBHK(KXPT/?YJ0$F[NCLS>8O8R[KI@#5:;@:8>WJ53:_TVU<_-(E^'.VCC*X
M%51H<!BI",KTNA2RPK,<!*[LOWEVRZ*Z8EZFW8< F"[5_Q^]+7C'X?Q$0;9_
M=_#Y+XY: I8X#^'PE8R=Q<7;K= #?E;6ERC)]R\C@/!4.TGN21C91)=E/@"K
M5#?]!2__N\=^^16.3K+@=R"37L[GO);-#D/$,)-]!>*XTHC@G^J-P;2X)'8B
MT[,+0VT54.;@=#;<4K:&'69"7EZ=!_*?D6QT;CN/.5P08BE9/+"OV[R/,YZ
MIM@4C-C0:Y#\[+T*L#>]W6ZM<35@4'W<0]G/+4_5I5@?&5K?<!"B7_##W9M7
MN\<U*UZ1?8W'? Q*4%\\[X6&5_DLV."07KR:M5N#PQ-/K\O;8Q"W&);"A.R*
M^G^.LN4Y*&EP\LKW8M'8&T>@ '/W#K')HE;TH0!E^\;O[LK2OO7;B-%DL"'
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
M$Q8$^2HO7HF8"(6DB*V2?*ED]R<^@<5*BU^)1(%5!5E175K&HCDCR%78FF-
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
M<P?W(';BSRV7Q:/'#9%_3<V'!W#&TBA 4O^L[?"D7T1Q#M<)DO@7K0?(YY3
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
M9CHQ7=V;_\Y8K-2.^R7GF%?'FYK3 * M&=O<8=0@AB]VN]OS>P&B[H3@.Q
M<71\L3 JNM "8K DU;V&@[/?)>_EZV <7&,"Q*M"!XFR>6(!O.I  $3S+J)U
MI/?4;%699*%,+N=,RLU<R"],ANC]U#P"!9A*"4<C.FY,@/B]@;C5^NA[TX"W
M^]W6F'!L YTFX=:VD%Z"XB<V?&=K,)F!;A\@,$GHV"C2P4_5JD S$E)2Q'-Z
M5(GI+U$<%\5\,I8LE$EW=U$]_]D(9XMQJ4S)K>1K%NW.FAGLFKYTH*EJ.]GF
M%E0/5;])56Q:'_O,D2 ;1G$/M[12%]M)^Y!%;3L?:N1#C8B'&N&>"&DT[PAS
M.\KH0JK,;%V.E['9S8-8%X'F::2BQ^SN4@H/>_@ 0!\ >'H!@'TIH2.-_L,:
M\<88Z&?JAQMI7%]KP]_( O@Z&=)&%J-G8@(=:00>QO\QTF"[OD)IJ076-;M0
MQA9%USXN8JPA=9T,85C0A*4>&Y9=[#10D8XZ6'JQ4*D*2<WQ#UB$A,6BSMBH
MBD%-03A8?%1E(51$"YU@YB)S2#TN.,D35=AHD43_V@;;/FZ5Y!["EEM\E4"
M<FNJ?2CRVPI%]CXXVSZX?HC]='2,@6,WQ+XTM"9#/MQ DC,0^^YX"D<K2A;%
M*TIE/L4MEY%0K6]%&NEJ.-D=W/M7O2?'>W*\)^<%)!1+':E;I@\&ZEAO^&7"
M@B!?Y3'\.IP(9;<N7E"3?*F.[M/V-?(C&1G5OJ4^X88:5WJ&2S1>__#ZA[EX
M.3WLM\)E=7Z\VPZ/:UZH<\%W+O;;\DZ?)F4?X&.9Y%DDBZVO3-'*&#*; XNK
MD3L=?97L=-J9'@)P11"5SNMT>16++__@X8*?E[0#J;M*)--YQJ4&;KM1O++N
M V:]0N<5.J_0.59ZG-[>(U4,.]UI(POBLR*V.--Z@2^D(H["0L7:_[IX*CS-
M1/#G4L0PN^F$%V_)X_77=N/VKXEVH0NO4[Z24U*9'<DH\--+^01^]<?A0)05
MHTK3R&P^#<6ZV.S[JE^5.55=AN@LB-D!^%H]-.U& TBE(F[>\23 #%\]!3BQ
MR%6QM05P[B148;:?UHH# (OXV_>_:1,4C?K2@O;K]S^TAO:J+TGC01,\L_X#
M0 S#XDYC\2V+PNODG*VCC,5Z6)@^0T#95Z2\$O(C_W+87;=2)/#/H+QI-96P
M6HTQ*-0'4;,<U05X[Y14D489O^?R*0IXR3#O2I^):J BKNN,$JX^ZWY"@=:5
M*MT-XI=VZ]>V&^"]J$(\5),L$E@1;6$Q;=L1DC[\A0XZTT&!JB&]LLU A1 J
MKIX7Y@"E\1\.^$XGO!6RD&^S3$:/>:9,)@_BELGZ A%]?X[.!)8V%1D]%0)H
M^I\YBZ/Y!JZ*:5I8%YJ\"M;&=3\E=\KA":MYR60"A.DK;.@;#V" 5U=4.LNS
M5 F=0%&=#;ZNW8 ^@Q?L4"?+H/IXG\WI!5@6XLEUFN8\O,BE$ET+::O<SL7_
MGC4\"VIA)#*P"\G2!FK$0 .!WEH,+Y\9#*M 539T3_0#?/%@H]'>';JFHR/<
M1&PE[@5M9Q1UZ^S5^%%:&$*QH+7F;<<3H/<-&Z\A<@I.JA*/!<L0F5V/8JJB
MD^69U ;OMG:B#3,G%T%@8ZUK3/%N(P$LGF4#S8C<V=6;\@3:5$GRH.(61K2R
M#I([F>B5-/"WD O.08/$&(G(A>'@E["=)W"P4$)--=%>+E/ZL.VP)KHX^U4&
M[-X]/IZTW[C!!L,WN4L&NU!Z"QBYVP4'2^-E1"*B5G+(C0<1.3G4JA59=AHB
M9X%:7:/.C@DD;FKUCKJZ)I"PJ=6%=!MX1#/?6_(@9FD:S:.RWCF1Q&];9!'+
M +<+RZ>"^U3P3N''6M$'&X-L,,B@8'>Y6""Q/,O6*J4X+%J3488(.$U!'%.%
M4]-I$FXOI_0>M),:9,T=1AC'.6+2AP]!W=>\W!:<W9[K&A -K7T$;5, Z$>1
MB-W[ "51VYFLH1W7:8C0S>>2S2P'OH*P3VLB#6T,.9Z)T/(*.X/ZR2#!8=O2
MWQ -;6/0(2;CB2<Y+^JF;2OZ?XZRY3G(CT"=!"+C/"SL32F'_POKX]X[C.0C
MKWWDM8Y@7RW'_?.2 WI&G>*T(N6(?D0%M_-E,13+GNA(+E++TOI:F"Q2,1:Z
M^"]:1XQ"')F/>FP=:&5L[B1Y)'Q(9,,RF]MY1Q>W[$L.&G,@'R+6KT<>ZXX8
M::R8B?%VI'%C*(? 2"/(NL?$40O[ZFPS:PYJV?Y>_8\*HX'?_%]02P,$%
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
MNRON;Y2%U@S,[P]$K 04^8@@. M,79F:C#$P57LS:V".475C8$) GPC".!!
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
M4T2&^+H?,#;(++<"=),%$5T%V6_Y81J)?WP*5CW53+7:(,5IL&_;4M40%P$
MXI]$T/>;(Z+&<(;BH@=Q4Y0PPT+E6HYF(S@JLC)9//I>]F)9 :_I_#7(;EEV
MO>$&^I+;W-=Q0?LKZBDWPIR/1SNW'G%5 B 2 :DA$," +[)G86"3:^W!5??P
M>'T\BJ0L7@S'6@]W*;MEJ@:UJT*+*;<HW3W;7E:"=$=E,J_Z5X73N[</*NQS
M?.B6J5;Y#2LKM.Y"[#M^J[;#'L3'^G=V)!\#@CJ<&QS=SW)T*;T#I[K>0?VR
M"EL'-UK<K"^56MRVSNS*@L70_/2\Q+2#U[4[,+7HO(6NZR,RL@Q-C-?8>L0$
MZKM:E'J!ZD@V3SR?-%7%69ZWHQGS\0ADW;:8TXHJ#2=7=JI@M(\N]D:)"5>I
MR_P#FJW(Y'QZ:+*]H1J-3VZ]=0!,\!RCK+W2V"1N>RB;<CM>]>!VM^I!,P19
M1+#',C#>_Y0R*29P."V/8@(PNBR*'V[Y*8?24D02.'D%*]-CN1.C:V:WS(GY
MJ7TAQ9[$__Q"\T)&'_!AO!U27(9)N"[QU %E]M6=.C [+>QDA&=^E)CX#RFQ
MUWKL(TN+^Q=6MVEH#9DHV30ZR8Y3QK8+,,OR41=+@;U=5VHDX C;#3:93).<
M]6<8!&&R@941ITVA<'Y^2,)-(F0C_XN?]"OLS#!3['8KT&=IR%;T)GBB.53F
M^$3[1+;_0Z10[G=H/24KR._)FM,BKS(:TOB!1J]))-Y8%8?9M=3#_.C'I1+
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
M0UM JZS-?7CD(U\&894HN6Z5%F"W27PGPYUOGZ%R1YK#B\^BH =O&\.,W#&
MDI%</M,&FT1%S$.Q#</JBUD4(?_1!?DG5IS0G.]MHA9Z#CN:J/]1?U!M;T.O
MM1OJUV"<@A9]5^;H9* 82]0#=Q";1&>\1TXX3M( )4%.2JCMKQ9M"[6,^Q:G
M]-D$BN!6PT@TR81)=*MW/J=582@ <Y'N&-/-V$H_W[Y9:J GI&Y!4'2E31#0
M,/K#"0<0&J/!141B/3=0]DZR+7"+RML^R@9+>F&*[#*#T^'<Z;UC-95%QO++
MX!ER&?K=WVKM\([PX?X=WKP- T%ZDTV/#K%"*YIDK3(2>PYE14%B:/Y-].0<
M%N%]G+/T- CC1-Q:=10>4_@2XVGI[M%Z89Z2*JG(*I85LS@ W$F]54.1'ZEE
MBC 4N.1G\GJ,RQ*9AZ/PB+PP#1ZZW39$C4EX@32C]S3-A=U;7>]>PB]$[K'X
MZI)Q>Y<6L2Q16EX"06A_WF]'FNX>N0F9@F&_U*3 0I(XN)7+-6@5V6W=@7[G
M\^K0^*0RVS/EN,1,D-]#O1#^'XB.> @244&D. ZR[)D?''\)DDV?.:;5%EM0
M1H6&DWAKR&T*X0?:X/!3*T:+[6P2+UW[(D7-Z-;R. WB3,"Z6,(_Y6,UO1Y'
MK=9HOZ(2%7?>0R4X.!^AI9&B/($""RG!B-H.LL)#\U9I>=TQ@^(.NI+()C+=
M<?VF)&&/P-M3EAUG-(H+V/ &"R.K-,'661KHVGJIAO?'I*I6L"!OWQV\^9G+
M805H020>Z8GR6B)9B?\,PU3WHA?">4HD.AQ!76JPO[BM)4Y;9<S7@!"J-YX@
MCN-$G!7U4D*#*MEE:9R(O:%=I#QL8?#ZF*ZFL+%IG)V4W!/1F _O[<_PPP'\
MT%IX_%=_/^1'E@B.+:=)<+>SMGK_KKE\]OJQ[FRJB!&@YE1$^GG&1AGAO/[H
M[MGV$RTNEOT^%(46^,JB?3V[TJ8#$# JU.B($#'K6_3+V'5?Q4]'A88A^&95
M*Q['Q?-A1H-C%NT:''U_1NC$=C?6O1S@PP-B!*@Y5XF='&-C;' <M)#S4]C[
MO(A7?(/N\T-T?X0--=CJS+8(<&H0ZE?3XT=LEL3A,_E2_M=WC;D>WC(UAKGV
M9MT63=R-?)TA#LMG='I]6 IMT)ZK@;[=^:L&0."\5$9'A3A_G+/T[H"W6Q'
MLI"Y#LDSN:+K\LDDOJ0N,[[!QFMOX6<J8L507'5=1N:Q>9#N,F,I_S$4ERJY
M5%'R?\=JC6*[09>0T2-GOVC'8_NES&U$LU/ZZ,EBIF9@!N%1V89&Y^55*Q2^
M*2\6RW3H]*[U-YWH*42W)H.K-,A[C;W2P&DL-,LJ;W"16P"I]41KHCIJEV%<
M&(D>B_)"3X7KNJ0QR^1FW>0<AL)MV+S8>D+S,(O7[8BF'6G$=H.N7:I'SK8B
MV 6Q@+>/UD%6A;DTH&:S0Z)GC)F:!L<EM\L<AHOT.H!"X5O%6\<>B-%KC"W7
MK43$U9ZFA@95F-K2.!'[4SLC73Y2MF;-.X]UC6+Y+$3K20A_64&:DLBFL=UW
M+,]AGF]60G7D4,_Q.$A">$5&I,/71\SR^V.6%W#3!8FJ<+Z^X<?K*UILLO1"
M-PC(#EECT4-FX?D+.S([#C/Q2KYY:RS0J340 B,AK:% :B.I!E.W@^$L2#4@
MTOBHKH)"^'CEV$!1MJ*H9A(M96G)#H99V905QT_R0-Q ?K$I\B(0L7 ]JK+W
M.^QC.KO]N5)&>X0QVL, >O3+(&6L8DY>Q67IW!Q5+\S8&+2?"]$?@:U'B'J%
MFBGSR7F0Q8JEUP4_/*JN7)4F^#"+WJZM7T"7M:.!^**4(L(:^MZ%2XGO#,-,
MUWXB"N5::*0E=8JMT%Z@P=[M/V%3DI^Q^*E. $-RU?WU^*\TOKN'.A4/- ON
M:%6X%6S4@0MRA583KL@'>G=Y23X  WM-;G1DJ+,-7(]7*$@)@U0XR/C8+%Z/
MJP@50_+3;B":*/)0G,9Y&"1_HT'&C;>3_06D\BDF0*VG2^NV@J1+)&$"E"'S
MAYRXEB$EOC(=9OF,4CH*\CB_7F<TB"[27X(LAKH&(-!OE0*6QIL;B5WJ)^,G
MC*D?S_2()I-C1>KL5EFM!1%XB 0$WJ,*DE_MK26"O7%.JKQVNT(K(.=P'0VN
MIYZEV/L=<LWM]:<O<*BG9VN)2D2IRY!3QBPC _!QNF&/L)=5T2\-3)E';N5\
M3+Y-R;5S@5 4!.-HT>\8J"X\2Z([*+*S$%6=ZX/RHXNZ9.X)-_\@$''PE&NX
M?P?7E8,XYG@O.0C8]@6D86ZYN6FL/FU0+TB%VZ?]9WJQ("\*->;4=T#Q94;7
M01R=E-[!,JFXBFL<C+"8UIFQX&$5HOY"AE70F0D4-LR'[0>#;O352HFG2K[/
M6^'"@;\8@XE".Q@?K#\#WHV5,-RL-J(PX9[.4K=(%#HQ9W8,$/-H6PR@,F1
M&!VW.2NA@=5A%,S%"E 1T.&M7IG[KHOVK6,XVK$\%[7;EBQ[#+)HL 234AMT
MD;Z!ONT7YQ/$996E-GF_)9?4^,U03'1<=K7.<H'];N?2JVWB7E(^0[UA]]AN
ML&54-<DY<F[6L*23)5^0QQ+:05#>AT;5B2I#GD/M#QVW@>KB\E,P%BNFS-0$
M6+TM/BDK6LL[2!G7>LI_MWO:4_H6<5_<VZ=M(:P(5S?&DC01M)U?&(]SEFFQ
MR^>&,."Q[__0B%)W>">UH[;1EU(F!F!"^7J[EAH0B5X%.LW;/U%%0IB&FH+<
M^W*R>JQ[=*T<13C-'%3C/D\[%6,/HUP'<J<Y2^)(' _5RI"H-$$'<O=W;3^0
MNT5[=N5$E)C.,)QTG>?#L@)2C\:VX?X/T9D^NQTZVH8%89G'-FT?-C$"W#Z\
M3]E3GDRO3#!U-GD*$+F!F)4QW3KR]=3@D>U>;4N/(+L069WDBR#M78V.\;<K
M9F.(:6YEZ0K.Y!?+SSD5%S07MT4 SM^S]/U3>,\Y#Y7/3^,4DMH$^JK"RW./
MM$WN#RF/:+K6JZ@ L .V/-AP-2UO_@@KT<%+W[3$1Y8L(TN)L%3JOLL*39]+
M9GR"G)QX+JODSY[\@<'O)IQVMOIS=M8I/4#>L@:&N<F4630_Q;E]?#>A.D=Z
MM*@\>RC/2GVR'>_42U"@8S.JJ4*5IFE&]V97=,4'4?T13.R^#!ML-S;NS3K(
MS>?>+*O E:M '!-?@6L(54S!/B,LW*)UX)J!FU=#:%5OT48GP*K!]#XMN'(Y
MC1/Z:=,1<S'T"<),VNW*MJ1)>@0($DG1N6W4RSVFPA('<_]^1;,[+GX?,O98
MW(L"D>FN@:/X-5HB.GMU)!P5;2*)DY*Z)T$9YB_39)K/!-S3(*3R)<,><V#L
M<R,)MDVW?A)J&_K3$VBGC,5$PBS0)RJ#<9(>VR$PO>FP?9QSXHNXX40&7!#M
M/T_P/$ WSAP.0,R;EV&+86R,"PYVT.M5D"1'FYP?Y?*NR_6!K] [YE9OCG9*
M09-41#UMD-UL9(J\<2$-]S1)QLRHKH_PLM#JS)4H $G/IE(G#YD:8YPH_K-T
MR;*5N&P_Y[)X5M#54.S-T.<3-H:N;IUM%"WBY N0)X*^VWL^928S7<ZY%B-Q
MZZ@F0EN?FA$?T:4?T1&D9R$UVWSMEY@.9CG8?"XWMTD<GB8LV#UU#7Z#WGI:
M?3G:>21%(DAZVGBZ&,B4N.+(E9<=!P6]8UF__='YU22'7MV;0Y]>1BJB'MUZ
M^VS<\^SU\,:G=^;P*>Y_>*#O0R,>&>C0^B:R[;H@7X"HG^"B 6[VNBOV6>1
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
MZ=:U  GRH',J 'Y%J(_)74(TR#G/.=)'SS<<P$#="X46IC*DFYZM7RCLWR,
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
MF\Q,CN%SU;;#1W MCOH\35S%=_?%Q?)S3H<2;I3:&#E+[/1M6_0N=JSG!1$
M#MCR8,,E46:<3#]!3!Z5B9-X/3(.@RCD!SDY*_3)4N]189"5CFNZ4(Z ]IQD
MR@*!^<FF]V4(S>;8&B^*9)S5>E'$@ZKY8FVL^-HO8DM;E[1G<E[7%CTVE<?^
MC*S+C)_HXG605-@43*S>-@8,K+V^G5T_#H&8>J2?,JHI9_J*'.'G^:4M?X6Y
MP=T@+E)EK"57&!!P0I8)>\P)+.>YF<;]BZ;',!YAZXPV\\\IU"Z \B T>O\$
MM5\.5_ OS,X^UI>-;;Z/YBSV_#YPQ@T  UR8HJHD,9+1M;P'A"4=EYDL+\$N
M&!5<52-!;1YFX);1<<;8<,',X4)Z9IO,X-VM A-=!_8O:9;12(:)W@1/9:1H
MZ9OLD2_%5NCP_,'>[4?@2_)PS\+IDR)X\B16JFQF2-XY5V!QP:7^ = 5G./Q
M;2)=)*!=LR+^762^E8 /EWS?^1L-LE/>H%_-3>T1KPRQE!T>IK 0D:<1=QQ!
M.!MO[KD9$P!97SO$9%%E%K@]HR-,RS,#6&\XX:F.R;U^+'LH:WJV%SGG[_<O
MP2(?G N$RZZ'P?.5XE,^@P:$N-V- QD&<@Y$^$\O4(2W9@(IP?OLG;$ ]YM?
MV&Y<"+ #0XLS]\\O48![3(II[/7G"U&+#U!H8< OXC@V8"O\49:=W(X.O,Q
M/(MGD3X.[S>L81:]NT@4KM25N3I/S:ER>IW4EV4=ZO3$ZOEH-FT>$!IT-L<Q
MO5.DL+T?F1%?S$Y?3KPP)<UY^E]*</8]+V@N('PN7.S>O0!ORZXPHOTLG;R=
M995:J*>;TJCT"@]&*5_"R^!FJMI.I6JW"BX6G2N%8GD8%@OO.N#LI @=":B^
M5>3F<O2/35X 'F%4P\5C<QE$;N4XX+=_^.''GX5QS7]X.^=JOY.7GGYU8#.S
M/GN+:,!-/;$W=U:1"Y?U1'B.+",<)W"VT?<OQ3;J\]H;X>_<%_B !W]:9\Z6
MMPMO_C1T;A8WC@^XM?VG%[*V^ZXS3'!WGJZY3_2IN'FDR0/]R-+BOO>1[(G=
M67;0[9)U<-GQ]H5==O3.#,)E-\SNV6]AID*HO$1/S3MPREW,E--P*;C<?"E;
MF)$8J3GXX[6B8'H]\<A>7(1&V?>^@\OYA>U3 ^[G2<QU*[O5(Z!L.;#N3C?%
M)J,=JV_PZ6";))!2;Q**[271?BY8HCT0<$F#5R;;YPLB(9,V9E*"UGXDV-*R
MLB(%S,74SME,5#P5F>G4B=GH^H1D!J5],W(Z7W#FI)_K$4,"BS8KYW1P/&1A
M#!<SQT%^?YJP1WA(@Q[+JQP^G*H@M A/&;CKQ?6"O;O5H^;L+E8/%NINU?;(
M$<OX<YJ5U<+%6ZU0TJ!.^2?W # ?NS!]]T;>E[[U=%V*E%YF:&+\&.47R\/P
MGYLXH]& ]CIZ_AC\@V7'29#GJJ;X](XG&N!X "[-[@KCB/U-;I^)0$H$U+E9
MW 8FN\/.-C6#;E?6+T&R$?O\8<)5 (0JP]-45S2GV0/-3]B*:X&>M:/3%+DZ
M5$A8E__WQZ2:XP5Y^^[@S<\+4@,C#3*Q'U38R!>)SH^D:TT-F\)OW])ZL:PR
MQ?D6)==8YQNR$WHP)KN]E.8BP@M2UPS@"*4R5WR1UID@CT_7H#PKSL%<GGJ"
MY2?^F8AAY)<LB?D'(U;-Y/Z,/P0U0M=Z@M' $TE2;[?!$8F.?"G_Z]MNF3Z=
M2@\I:<V18_O_/LCH49#3"&(T*4?<?IEZUZ0>_!AKIW=VZNJ8WDT=<QHW-0[$
MH5N0/K@%VB1L$2=4Y35-6V>"86%A>ISS\$"KW,/&7Q@;^G;*PZR[?5JO(PU$
ME<I%VZJJ/,C)W==+A]GCVWIN6_<W',OA4]QW8Z+7V,IYKR(R%W-YY\0'\,@7
M #@76WEPAI2/?=UL=RNZ1YL\3FF><]5[&Z=M^Z1'7,<;($6TOV/;8EE1)FW2
M<[-5%?C.])DYEQOGSSE=;I+S>*D?AKC?U/CM<4/"_QUQ@\7L3?"4,6+>UAWR
M<R^(1$, #GD%P4NO9W8YW"%U2E? ?6QVNQ#?!UD:IW?Y)<V$]:WF_5!LA5Q^
M([W;7GD5><+I$P%@,;<M0)7_#,E451E,']=/0K+>OBOE"G[S]S*=\YBE11;?
M;F#/@;3-3J^Q>@--:1KOV$%U6"!.VM0)D%=T^-H?3\3"#02&=KAO!L9UEBY9
MMI*6.M0,"F*0+%(PPH]CI'?4WSI=*AIRQ?29.W&!\,/J/S=!$B]C&C4/VUT'
M#V*%#BX5S::81:-(PO;RX3 .:ARD]?Y?B63B4K(V2AN+2HD7'A:8KC2R*<QW
M:QEUE"J0>Z::B:3;'&DKJ9*QO5BW<! )9'9FD_:<L*F,=BNR=25W-1$=^QPI
MDGW=VA9!21>NU6<G>*.<9KKL\Q4<.!!XI968@^AI<OB?,L7YI-G,+ZY/?]HZ
M _F0<^%6[/DB/-X4X*C_7^PV/PR+BR6WY'^\HB$$%W+C)13VVBEG%43ZWC!N
MR@1PA*@.V_"HQG))P[XK0_,$D(O$'!!7?E%SB#'>4Y_\PKQH$3P1P"MNTP Q
MX9 79!>N?(GO\.+X#,X=%61285Z(D#45IEG20A:6"[,_IXXS=X0./1Z,5.C\
M!IMUT^[+64Y-FR@J8V8::O0#NF6(@L_@BN[)9TJ\F4-(VL6ZD,4!N:$,#P\^
M4%$2</"J>D)/1H/9!BE:MSI;P6%E00!RF&7\$^E*FLMA:<IDC0:3:<R 6V$?
M+WI9?C$LZ=AND&*N2\[Z(Y!E?5:P<V08VS8DX2?EADR%:G:> O3\,5.3,O%J
MXW!%,Y;^&D!&(T0ZK^(<2'W(V&9]?G[<?[&AU1!SK:%$P+: 2A!$H"!M&$3@
M6!".!'^G86F(N!N-*RKJ_E97&*!MBV>BP@ /%QEZTL?P_'9^B;%BZ77!]1E$
M(/;%5/5]AK^4V.K.P>4#IT=R(+@@?_CVS5NR#C+Y$O""O/WSXLV;-_#_) >;
M@)^"-\4]RR W?4%^7OSTYL^+/WW_H]@S?E[\^*<?%C__^'/U*9_0#9=A^!OC
MA\."_\"/>KYN+[HGB:ERWO%)M*Z,GL-9&488)_03+9JZWS<,,N,O,_801S0Z
M>OZ<@SNP+F+%S^#Q@WBZ^?"6[V%!KQ_-)BGLN=@").N;4X,9M'96H19U&JHB
M#4S\2]1R6)?0(1G]U287#TF];E54"^H1_,7/4=>F6#"7<^UMUQ"GJ/RP5ICC
M&TA?B^E[R6[/;K>5O;V#O(K3\K=^8E)5F-Z]-PQSTK.PG8DM5U70MK\V)62R
M5R\"5EH<LQ.N'48/"587][P)U6607637!1Q%A$E4!<"."]A8R^G"UD?!K>#5
MMK(0NH@E29#E$(0F!="[_(W.0[<LJC'7FUP>!^NX"!*Y8LI$L.B49;)>)"PA
MR!(;EU*]?J;+K!H]5S=!VL PMT4.1H^XU"T7\;5<Q"4PF;"05RF3$5FRK"K5
M6J&;T]ZB*;W=*QTS*6[7_5Y%E/U\T)Z5KM$2N;85*+A:S0I0,.O7[ BWWX^[
MT5^X39YSH#8J2\M01[38!&Y.6FIY5K26&?_7[A+CO_K[%5QB=EXM]/Q5<ZGL
M]&+]IA8\[7D1AUR??Z1!OBDOK[P4/.OC(!MAB^-"'5N%[ZMZ]STZ=?AC;*F.
MSDY=:<YNZAAE.7D<4][7K(DWQ6)S&94VBW<:1@2'Z7'1OE[\&#S%J\VJ5S-V
M_AVA&[?ZL2WR)3$_5?/ZN<9&6>'XJ%G6'(;"./S'L_2!YL+5G$+U5+Y+;[F=
M3^(\3!CL-"-7+::ZQ1Y$)Y)WD+0H-%=< 1-7A\L*FO<K$6/3QVS-B0.M&*?#
M6K'K[QBMV.['NE:4Q#QJQ4ZNL5%6>#Z(?Z)]FF[H4U-';=ZEM[,UIVWD,(T:
M R*"NBZ<"^\$!.4K1.G8(%R=G=O",718WN.6H]-Q1]VYSK]A3\9.JL;UG8O=
M5X3KYAT;9(CS$EO@BA'GC[.TH)RO17D.N4CKE^%Z=)]>8WR9+04B#@MM*:!!
MEMHR.TX[)VQII%*?YVM-L6/3>.S30Y5?<63UPT^])655VACQ5^WT[<=MM0-B
MNO=J\J@0UW+- I,0(,V2[U$EB@7Y!%7M1#;8#%Q8?2+5Z\D:Y*CKN_14'!]_
MC8O[XTU>L%59"YCC&LY_U&B)OB\?I6 _QD-"\)EKJ,-H-H%[CE.ULM*H'XVK
M'_@2FW"UWZ/UG*J*9&^ _9NA /N4I;0*:F.9]RCZH2EA&GSV*7(*<9+C#8P(
MH,MHR3TYG%? I +'>^5K+F&3'QB+'N,D$?FQVU59=O\]F(6*[@<IE-KT;,MJ
M!4AX_SL>S^[XU<P24?%3R(S-B^OJ:=6Q,8[ZCV0]7Z%KI6WU9MTF%%D[G!:)
M-IDH+WE/(= W9C)0,"[AU"^S!BNV@6R@4$;8P8[NJ8!:-]>9(BL]7S*(/&S5
M:X:MCTU=-(A.O5TU".I&+AN0X\"<X\<QN[I;V):(H=N%#O:X-E0A4*=XAC(#
M!5?[[_^YB=?@A6NN?<=*!&*Z0!NSZJ3LF[<2RT+4J"B$Y5#C(0T@\L6W:8":
M(&:"Z_;ORD2^"&#Y0-E=%JSOX;*IY^YL]%O$75IOG]8MUA8]7Q=JXPQE6EQR
M("[T;A=&YX/.2M]BQ*6O3[?BXBLN>9RE3(M/,]DKT3ND]7UQ)KOA3*KB:LR#
MRO8WBYJW>R;EAXSE?8'TPQ^;.KN(3KV=701U(V<7Y#A,A4K=C0_$U8%F6TR&
M#C0=///O>1\MAZ'6R* 'WEU1C#XO_(SJ8BAR?\0;/X_J& ,>U.I/6$]\=WOS
M'OAM.KX][]7?7Y+#O6>FU!SM0^R?6.OQA*XS&L9!65*U'8-U%=_=%Q?+S[E$
M<;AB61'_WO6FO(&>,-4@<11M2V\;52MSI S* W=\#07Q=IR;$>.J1=[<T_*V
M >X=RO?J10FRNU3L*GQ3@=N*JH)V>6M1W <%_VJ9T!"*ED$GB1 $8"#O2#1A
MN>BTU@72(B+L@6:RB?CW'\E&OC6:Q _EP],-H#;G:W1!(1^*$X<1*)@&;#Q@
MRX--7G;:$5GIY1F\2:N+&10@/X>9^DV=*A(TIF-'FJ$F$P\V75V[/MYT89AR
MR)DXIIV:"MCR^E'[W).HCLSRJ6=0DCK./N.L='TO_L 5+LN>AR[%]S]!WX@W
M7=E>%!4MI.Q/@XI^0R)616WM+KYCLID*6WR>W#7+P.DU-G*2]U4,;N]$/\MZ
M<)H3TGNXGV-5N"O*5\R&PLM"7:'/?$-(-A P"[85_S_PCO6([82>D#*,H&@]
M!Y_;W7F0X)2ZD_$@PE%*7/) 4<?V/W)HI,(&884E.E+!@R>[O*S7*9+(#$['
M1!?'.?1*ZP2RCT&QR?A_!]^ZU&^(<6 H$;"]U"2(!:EA+$@%1/N2SMT8D1Z*
MX';#=T(2-:$X;$DV*?P;W 1\L;52*OF?$H'^CWF[(GKITJD].M4AY?G;<O%"
MPMCMIB!Q3E)6\+^O8OF(QJ*NQQ[7WHT^X@7KH)GN$]WQK^156 7T7=8LX0;G
MFN4Q4/3@N=!;10PO-HYSLX,X$];'6;K>%/DY5W+)]YWU2#1:8+.P^WNVK3V
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
M=OC,1(N\1JD/6R6)E1C>];K$.!<=ER0*\GOX?SAF/ 0)>->O*%\%<5C0"/[
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
M\C09X9]_P:%,A8GRCTE5S#B_ IMG)"M^K/\.IYBI4/:-5_R2SK]@7M@WLG"
M8CT)>3$?1P4N$WW6>?5>799U7A\@GZ7:$]%8C5>"R+#=!<G.!]IHOF7@VU)8
MW7]_2$ !G>"P$MWUX!8B,4& 2G#_EP[SB2%'0Y=/;.KKDM85O\E>R!NHZ%H_
MEB&B\(IQ(<7XTN&J*<9Q,"NI<$F3\4Q&>>W?LXM]FN_9+]J 4Z1Z"@49(B9,
M#'M\?BDKG)*'$HI5[I,7.2!R[.(R\[3AH1E9-=1Y&0%O<E2<4;+G,V-X1WR]
ML]+'H#^^="-16;%_/>1E*?,U#CBI%D#H9:D9*9\G$Y>9&H&>%,3<42&:S RK
M%HYCZ;EYF6.ZWE >,AW1#/,O&"J'\85]ZX<C9-2"1K^UP.-<$A2X3/19%[@9
M0,XD';J E/5K!&<[.VF];-H:0 F(]Z#3$0LT*(JQ;ZR:>T'L&!PD#X,G^N5P
MQ9G-Q1A[U"(?XWS)8#D91\"Q\S)&N4IT6&49/;^D=?X(V7M0^GRSO;Q=?\,%
M'UO$YR,<A@+EJN^8Q,3GUO8M)TI(:,>XW5-ET+NQ0P(!%F P,CQ0BPA:#&F&
MD?H=1KBC,)440CR^XG@@VA*Z.0#A$2+;RN>&&/'6E2: TN%[ NW)"ESC%B(#
MKJ 1%-^UT@PS,,)JB!EDS(^3<RJM- 8OAJ\):O$YJ@W0(0(EI:&X04EVH4ED
M>@_H$LF#M.4!*!?:YX/0-#$UB^KY>Z5AM'@?^!*%"[;FP\^XQ%52K,MLG3WF
M90ZWNSI_PC!FL:1X>K2;T1JF5RH=6-YO5@*9%9+H\.R94X10BU'D7FQ&6T2<
M\#U(Z) I8!C^^80_)74B\\\F8H93CUL$"X>6#18E[(##C-BDS2*-%AF<9#'1
MY9NE_?6U ;F\V=Z2FBV=)T5QN,-T3]C=;U/@VZ2"--$AXTOK11/+2PE $+-+
M"1-M \03?08&E\ $4J][N* >,FAA-)I96)),9E/M>V16/3+W B&> WU+JKJ
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
M2O<P_DK$Q.A10W[^!<,C,[ZP=Q\K0$8%*1_>\R"%\L@#3]*KP&*BSS=+3_R
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
M9;<[#+.&-[A^QA@BJWM2U=PEUO'A=5$FL M^F\X^"4ZT!I[:'%"RWQ?0+TC
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
M>G:KYM.FU?B_"/&6C0:/?V68?Y(-]NL\*?3$7'4UM^(^!S54RTEH^]]-)P#
M2Q)KY:V9%V\]?K_=*_]M!:,9Z@/4&=;L">@/MQ_(!8\">P%7_%$< UWM6_AB
ML$<+//8%WR%7XE_L1XEY\Q?Z^0/FZ2*O*!]O5VWR:\$QY2A88L(DW 6HRT'\
M@O9D2Q:1;^"(#_&5XR A;UXQ3A\C3TI102;.%6*?T9_9O]@OVU^Q_T 5._O-
M_P-02P,$%     @ TX%D4EB"H6[X=P  !8X* !4   !N=W!X+3(P,C Q,C,Q
M7W!R92YX;6SMO5MSY#B2)OI^S,Y_J%/[S*G*JJ[;V/2NA6[9VE5F:"1EY<QY
M::-(1 2J&$042"HS^M<O0#(N"I& @Q< 1,!LIBLE :"[X^;^^07_\;^^KI-O
M7A#-,$G__NV[?_O^VV]0&I$8I\N_?_OI,9@]7M[>?OM-EH=I'"8D17__-B7?
M_J__^?_^/__Q_P7!>Y0B&N8H_N9Y^\W3JDAC1*_(&GWS7Q</=]\$WWS_\[__
M].O]AV\^/5U^\\/W/[P+OO\Q^/YO0? __R/!Z9__SO_G.<S0-XR(-"M__/NW
MJSS?_/MWWWWY\N7?OC[3Y-\(77[WP_??__C=KO6W=7/^USC?=SAN_--WU1_W
M3=\,_>7'LNV[WW[[[;ORK_NF&6YJR 9]]]U_?;A[C%9H'08XY1*)."T9_O>L
M_.4=B<*\%*.4A6]:6_"?@EVS@/\J>/=#\..[?_N:Q=\RJ7_S324Z2A+T@!;?
M\/]^>KA]]<WTRP9OT+]%9,W&_.'[=S_\^.X[WNX[1G..UBC- TYQ7"0HP#AX
M"9.B)#Q@<QS\580)7FS9_ =A%)$BS3/&9/G-%44+-OU?-E^#W;B<K/_1<]A\
MNV&K*L/K38*^_>Z(QPU%&1NU'.2._:)NSUG1PF]%&/J:([:N:^GO:$M(]$HJ
MG)QLMPHS%/W;DKQ\%R/,*'KW&_]'P/\1?/^NGLO_P7[US^LTQ_F6;9@0I[N/
M)N$S2O[^;=N?*YH2OM0(K:4U*$UW:!DFU9=G7W'60%9+"Q7*WJXA_IM_?B0Y
MRI[(#4[9WL)A\KB;OVSVG.4TC/(3<A1[J0IO)[M%F#V76S2C>;G$OD-)GO&?
M2B:.),A^]<_'>JW-%[_O5MHLC?]SO\YF]3*[PEF4D*R@Z(FML0M&P)\G[ TT
M6F^VBRQ8AN'FB/7Z-Z?LU[_^9P,Q+3.HT&/B; 0_F&-DOR78,8INV3]/][6\
MH4&BG\+G!,D(?M5(1.SQK3*CT3>$,J7E[]\RQ8?]98$H1?%=]8W62[J\7$I"
MV =+1>/?^:RC^._?YK384Q'2Z,U=]7J@NL5WFY#R6RI:X23>]5Y0LE8_X0A,
M-.S#(XDE9[HDNM,B&\"B)9VVYGC2T;-H1+<TD>D64V=>LOP)0(D!B^#=5$4
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
MHJ .9^(<K;?6;?H/4F0Y2=DA%@J>L("TU_/$P"-:<J&\1V1)P\V*J4%)XY8
MM=5$\FXFCPEI>;A!VG;B[D]'V##IQ3VW M!P-V>7(2QB=.*5KKTW;:+FDO>F
M>6^:]Z:I%@23:VI$20N=NDRZ*!F^Z*RLDB#0'IBZ5P"\H=IPEZD+  [>^JJD
ML(-%%?)QQ0/214QP>,<5*7D_D?<3=?43=8<9=/N$?@W84(B_O1TQR>.\]*0D
M==W$($;/JMXA^(#:_$2J)/F$M1.RQO/03, 1\L0+B)(P;7=]-+<8X-.?49)D
M-R%=DHLP_?/CK)T$<4L]3@S_1K=_HUL7*GM9'N0[95W@T&AO:)IH(8XO:FK
M,<:N2(54,G%K,^3?INQB*,K'=@1YC*T-31,MSUN3-)^X-]41-DPZA;F%-E^
M#TY9<SL8N..*.A7N#&@W PR1-";I+<>?GIG6-E\P\Q?%#TR7O;N]F#^(7_Y6
MZ:N?M0?T0I(7G"Y?RUW($JB/]UJ;]%J/0^SO(<6< KYZ!2=26S.S! O/GO:&
M/C; QP:<BL/'!NPDXGYLP/F^=RPPLHBJ/>.*3 1J-E$!!5R11^M53^!WJRNR
MD!IBI*NMXXJ$Y&Y*F#'K2A@$9,6 O0:N"$6^2,YE><".$@5KW/V(#Y@)ZLH"
M@=R^'? G]Z-B_,/.SIT-HS_L//DW165.LZFO?)C=*@T$ 8O!ORCJ7Q2=BN6E
M6CX#$AF@.P+RMR!!8894R_"?=M,6S=C\81^S>$+6>#&+=RC+$+KCDR /BE'H
MX5@XY3"NML/+PXRJ- YIG'W:Q(P^QOK/W_\@="@K]37 6OQ'D>6EG&\(_8B^
M'+VR3$G*_AG5L]#N$^TTQL2#:!QAP[]EZ7), T^DFB]F,=GP>U]X3(F:^C !
M'R;P1HOV80)'%J>[80+][GBB<L"X(BJY9=Y#87(%R.J]GCKHU:[(SC]2Z=$O
M5?1+&0+0C8"]>Q<P<>,7-OX+"O >X\[*1-D5BI=LJP>,*_R"<ZR,E'4=7ANB
MUH] C[QI0][<@[>N]NONDJ0E+=(2?Y N)ADY^,@></:G,-M.WL4.1K)9&O^C
M.@9F^U- )2&R_Y F!)'A9<JV2CS+:DH/Y L!#86>$\?P'&'#)!3)3!#$5LOU
MUVC%PRS8CU^802%<7Y N^AFI5_IN\8M?3!4WMH%XX1TD:ZZ?@8^$Z6"[8T>X
M>@0M/1#O2^)Z/-OCV1[/'G-52.X^HGK-N"(7D#U$NAB"KDA(#CU"]"I7L&CX
M/E(VR%P1$21Z&0I"N"(3U6,&;FVYXN& ;RRI+>&*2'PQ7._WZA[U/13\J=TQ
M]D- 48YI]:M-$J;*OJ_V$?2YMV0T> _6"5GC>;"NT(*=#7&IL./G@D\QKQ'=
M7M@5U&$0UUKZ5Q$F>(%1_+!?+8\ASP#.Q"0J=G7,#]A"XCQ?(7I7UYB^P^$S
MSYYF9UR[&&$]]*-]QR^^WY&W;TJ?X'ZRYG8P($2WY1TF[N]QA V3;JMRM[*3
M+RHH5Y=F68;RYLVMT$,_&_<HS?@&3>.2O'O")+L_PB]0RFZ?7,'3W7<X8P+@
MUU16W[4UG<+)A'8S47ES)V].W.E[+B=LB!O;0+SPH)8U]_X\[\_S_CSOS_/^
MO#%7A>02(:KGM2MRD5I"1-WD<$4V<C 5HIJXXI*1[R!5+,@5OP/\;%'3R%UQ
M2@!73B>(SI7=)3]K8)B5*_* W$O*B*0K!X[*I0U&=%P1CO<">R]P5R_P,-"@
M=@_PCT&V8J)X#IDL ]9\P]@H/Z;J")8.I,\?#"3%NX5/R#J/Q,86$A\0&Q)'
M.8H?<[8M/Z6X#.*X1W1!Z+J\,_GO9SPX3.#E[#%,;V 4]/CE%3N2(O:!UO<O
MFQOH(<X_L>J?6!V3K"><)VB^N$UC_()C9C&V2$W8SA"IGW&^>D!)>9%E*[QY
M(H);IL<(!@H%\L-0XLEK;&/2OS]?7!YI%J58.725Y=DC5SXNN/)Q'V[+ZTJ:
M0#W,J!,/=W"$#9-1&]=,N29;5.D8<WEI/FE[$P$+!TV)+WEQT(FDM0D/_UO]
M[^'QD^1A4$ ? V[S_8ES?";-*.6W=WD"76S?G$KE.7TXK)GFFX2I]'7G,3_E
M@R1\D(0/DO!!$CY(PK_U.?1>:+9*B,Z+;>JBE)O;9 !S=NI2@KMG!(:R*PY>
MZ:X#FC6NN"VE\E P,%SQ8TIE K(<7=DQ_DF_4Y[]DW[./NG7NO6'<=!-?7G
MS@2 !\2%\P&D>8H\HJ[<ESI"GRP_-WSH4]<"&$.ZK[1'0/V-APBM<7ZHB!Z1
M\O$'E$8=BL$#A],7#:5$D(^).B%KQ&<6R1=$/^,D"=<HS]%[2HI->UR1O/5Y
MA&G=$YHG;!'_(Z3/A'X,\X*&"46/I* 1HX(668[0)7_C!2?MTNP^RN L/!8;
MIGH6:?R(\^:(&;5.>J)3N&QR1-E5DF\Y,MD21R-JIBD0"6W8G*[8Q3-;4E0N
MRU.B6@-HE/OJ]]I='HYV9L1<'A_L\*H&W0:9>)B&(VP8C39)7S E*5\X8?+
M]D>,2[6%'TJ"4"YH-[L8$L8OP#OJ9^J&6:_BYP;>--!/Y!W)LE<'S\6VO)5+
MBV+WZR8=K?L IIFLZ1.N*T /_6SPC+ P#]GY0S8K'%V_<)=E^\S(FMO!@' :
MY!U\D)$/,O)!1C[(R <9C874"TU)TLM@F[IXP#<M4;_27)%-!_V0=-##7!$7
MV$8CW8T@5V0E=J3*(3 7_*BRTUD)PYZZ0. .134HQ!6YJ!PN7<!O]R,T^J(>
MKJRD;K?Z("X@]P,_U  <5Y:4BA+=AIRZ'Q$S7%#03U,5@0\*$@8%]7$J:H\!
M^BF@B&WT@^"@T3YO.NJ+ZVGYM(_@.2%KO B>V1HQ-?8SFQ;Z1,,T6^.,EP K
M[9J[N\OV8 ZECH[%]?2(.2G615*^LW6]6* HOT<4DWB^F,6D3/&9Q7\PI>WM
MDX_'\2@=A["$P98@&X5N=C#2&G&CUM% I9HHXD 'N\G89DACGB+P:1.S;<%V
MW-^^_TWH9E?J:X"U_=+/;I@]A+X<Z+UGAQ4WA.K-+RC2TV4,_:Q>%!E3U;)L
M%OU5X R7>X3_DR*Q-Q[<SPZ6!&]8B5N;"&-C*X._\5R&C>/LSPNF*:[6(?U3
M."'0;C8PM-W3)I@8:#<K&))4[ +TL("-MX\TR-AXV\, &^R8)4R)?$.<\ 8"
M]IIX1*0C;!@-[&370K[EJ3PDE<5&"=N:J+^5A_QMA.N0IKSXOZ3PEJBQ">)+
M@_Z&DG7Y" 9;!KS(Q6[?RN*X5;L;B/\*$Y359'Y$XB?HA&T-AJZ=+'B1/@SJ
MXT,'388.CD,LUQ$.5JMPF8N:^IA''_-X*@X?\[B3B-LQC_TP%:)RP+@B*MAU
M2Y1T5U=D ['&20>KUV'Y-",O(B$)X2=7)"4##TEGP'3J$E)VQI#N7H^IRPH>
M7]'#J>!*3%)O':"#[\D5V4FBLY5]IU.7RUB'E-AU?CXAN0J8S]274F>]&X*[
MGD]\K9K3SY5%TT7A!D#"[H?>*OM7'5XQ0A-6Q=MY/N'*H-@/5Y8,P%;M&I )
M%M'/=HM(1XS_+U,5@8_Q%\;X=W,X:X_N_SG *6N%@CS\JE[0L[FWOCA_T?=]
ML/\)6>?QA''WR&S_P*Y_8%=;D&*XP7F8E#FZ(:7;!:&\J+XX1!'29^*1?8ZP
M83) D=T[*,MQ5):=H%OADA*V-5".D5"$ERF$<E%3_83?EEK(4_AU5N0K0IOO
M8%AC&X@7!K7*FAMD %[6%]+%4!S?+(WOV#>3_UU0G,4XDD;) 7OY6$H'8RG#
MKY?,6L;YL4(@.'JD[2UA0?HH,K"7#Q+U0:*GXO!!HL<@IKM!HN?]^JY$R22J
M^IPK<I'?@*3C+>.*A.2(/\2 <<5+!M]' %O:%:'X)U-/>?9/ICK'-_P\!%I5
M4]\ G:Y0!=#:E04#OS*4D!M7@O[@XI%CO*[(Q+\PZP--N@::P*%L[<$EOP:4
MORA>1#D[V])EL",'&E[2UE]?@(F8 A]B<D+6>"$F5VA-GG&"_U5M9G9+ON <
MH^8:)@H]SB'ZQ;OT)^[2OV8''=DB](A>$&7+1?QFH:2UB=(]1T<H4W?KM\\/
M6Q+NM^TSE&'&^5/O)<49HB^BXG# 7MZ?ZZ _MZQ'\6H!B-V@LO;> >H=H&^
M:N\ /3*NW76 JMXG;^KB2,\55R0DQQZ4[F17@-X."P>D>[H"]"K(1]DB=64-
MZ4 V+5\F'MGLG$+7U]C3B'AF>)GB!8Y"]N]P7U(FV) $\W=]]O^ 8Z"J(^I
M1;O1Y'%2;3CI+(K8YHWO<,AO&KY)[OF4;-N %;5. Q"X2X:=91DJG[]Z\U4
MP9T'&8"!SX3^R4P[7LD%I5FYJ6Y3=@9Q;0= >H?N Q!]M(,[[^5C+H88S\ [
M+H?28#4M$CQ8WL'<<R9L!3WCM%Q ]9IO84+>P43^8[;B3]^Q__#"2"]APD$<
M\?;IU-?$,QIK=N&NV.;&+ZARSD+.M:[=+7@GI(H&XO]JY4G:PP@;&1-I7!(%
MG1MY%P-N+D39)N#5YX ;2-[!@(NK+G=VC^CCBAD2,$Z O<QELA;,$DL91;QP
M3EB&=G%MI?PQ.3Z)98SV'D^_"-X3$G_!2<+HNV7&1[K$S/JM%+;=GX37EG)_
MJU@\_;DKJ^)Q#.;:PM:MK+D)!OBKU80"KV-9<_T,"$K<JN@978?1S_ ]UX5(
MRC;'/%\A>D^8!HYR3$MB[Q-V]-4MQ)NLZS &&'XM>8F-(FD]4?)-AMO<4TQH
M5</W 45)F&6E6?NZDN\5RB**R_*^;9QU',8$PV2#:+[ENX [,;A9M2FW!>@H
M4>UN(A G0DSE9;<H4-^2=S#!1%E1CI%&EBF&6RW@?@:"<[C2?A%F*#[&P^95
MT6RN#'&SD=DIU?$L.MU[C.0#J=P+I/J4H?GB.LOQFM'3)MWF1HZ%3 V"U/I@
MJK9@*J#Z,G4/K@^DTA3+,-EPCG.+99"978TOS(B]2*Z(!L OZ0*JN[*)U.33
MSXQT)8A*368BS<Z5G&$UB4"=P*ZD$RN>0>HN9;"@+'\50TU04%P$+!W+7X"
M26>(F"2PQ"Q_,$)M/<'<*V#9_.J2;+K!JF!9_>:2K#HZB^$:I5,J=T]_,UQJ
M3BCB_<(VX<)R0@/O$D\,%Y%3*CDT# LN'J=T\G[^>KC0G-+/!XH3@TO/"?V]
MHZ<4+B6G=/;>KE:XW)S2YV&Q<'#A.*7 =PM[AZ.;3NGO2F'/<!DYH:T?N15@
M.0=P^3BAH \3_ZDQL;8LQ/=#D!7K=4BW 5E(PQ?R$I_<$0PL-MCC"]K*$?:F
MT2?BGI U7B)N4]Q-WTF496 .LTBT!I5%*Q07"9HOWF(&98B!++A1?0"33)Y>
MW$R+QA'3F:]P4N0H5N2XTV@^VM&]:$?0NK%E.70@%I8,,*U@F?$.<1^LV1:L
M*5Y54P^_\C&:/D;3QVB^?JFD\<HC_=5'5]:*BH1ZJ)NZX8(?@^<ZWBV(C@+>
MNB$#L,&T@0 JY'A[W[R]#YLOD&FO,O4Z5?I=<.DL^JO 6>4XH^2&T'5XFR[X
M?_BO9#I_QU',@A:,5':RW^ 4Y^@.OZ W 347VP_A'X1>\L!M%3"CW\ FA=(P
MCXS8HY_@8E ?RL,;'M[P\(9Y!7.0B\PC&1[)\$B&1S(\DJ%BIW=5FEQ9-6JH
MSQ!Z-CR$9.J2ZV6CZ4:!?@IPG5[4.2I$-(0VQ$=.A,=YM.$\A[-CG[M615OS
M%*V/I Z]SH5F0/^!Q@2L1,L-!%/)UZNWS[U]/AUBS\\^%^Y@;Y5[J]Q;Y=XJ
M]U9YN[TTE(:GVV3Z.=C450>",(T#M"LYT,UZ HZFS9!2HL?;5-ILJE8]!#AA
M(*M$:?)U:J2M=3XZUUVV0,WV5I>%ALRDB#T_JPMZ0GD#S!M@W@#S!I@WP.0.
M*U4=2;?!]4NPK(MQE6<^WCL?@[#T/G8SO!1'U6: =:++&V+F#3'%B0,99)T6
M@YF05D%X@&+.KO)()MG>U0F$L]?:PQP;1"3SFR(O*)JM"<WQO\IC[OHK+VF$
ME*9UR$]X4]V;ZMY4-Z]B#GMW>9/=F^S>9/<FNS?95:)S)=JD*XM#120=[8?S
MB5 >3R?7#0W]&K"A$"\ $Y6E"TM-(R'IDMWEZR!&SQV]\LKC:H.'.E+F 2+S
M )'RU($@HHX+P@Q:\B%DATI9.62^N&,T/C$:KQB)B@B1VC >+O!P@8<+S"LH
M0Y]C'C#P@($'##Q@X $#%>NXB^ZDVZS[+4A0F'5-2&WIK<U$$W[?&V+:#+$[
M/@M\>6=E!;ZLK K[P%^[O2&T_".TDO90PPW"5)8A5'ZNZ15-"!L=!AB.\/I+
MV_H8VH()AG4<@-#R*:VC3/T'E(2\=B.9;Q!_*B-=,HG=X)0_:U>*$2#TH<8<
M$YYH.;9 ((3PR--I:I7"NR09#%&0M/; @0<./'!@7LWM=O9X>,## QX>\/"
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
M>[7\WXNV1PC?<-1Y)&O8+G7E(;@6#&1487B[7T1\O6IH](KI0;;!2^:)??&
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
M;./=?D6!&3_KU_>5K\C/,5_)PX"ULPA@=0*VB$1X)E1P')F S*L W)U[>TU
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
M&<$?2^Y+G0;!O/_N/?MZ70)X%D*M(;VD%*MF4)EJX"UQK.$!JF\-QS>H ]=
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
M.[R2.E6^".UJTGA$]P43C]S8)IGA59_,_TR<R?],'$=Q&G08YBSP3^<DS$$
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
MM_I),3OS3(KYO]@32F$'HBM)M 1?A/:SXU3V.MTXLTTL/$REJ>GK&>AKY9,
M;NNVJT9>NW.DKD)@%75-1&47V6@4TF<LC*K5Q6<BIY6WM&[GU*T:.>W-LY:0
M^HE@PQ,B(A!/HJ^E(:OOV(:DP\WF!'X!RF&GZ#V'/W ,M%RRU717TUT%W:V^
MFK@W3S416V+H.&3A16DZ09UJ4!//%.)9_3SJO7GF49]23\[CB-O%P?6:;)Z!
M;.92?E"';.N0;1VR?:L9.O/,:"XR=.H4G>6EE)K?U_R^YO=/*IJ\'1):-66_
MW9HCW_^LM*02XX9W>"/]C (II[V>\FWBS8%MUNO]CO,9T"55>Z&6UB)8*&V]
M@FX7\VQW41 4#I*045);T\]$.QL/;!:WA+2S^N7([7E6#)B<SK%W>AV!)!JH
M$;4Z-HW?/\E(@HC"T A?)TE5I.>8-)NI&:4U#=8T6$&#JU_DW)ZG3\!2&Q$2
MYJ@!%28ETKK$*7 \#B1IF" GZY/>,3QIA+/B:G6Q)K=J<EO]\NCV/.NCS[2*
M?#4"F6;I9?;?%HD$C_CQD30C4"ZDO@+#KQ:/2TNOM0.P=@#6#L"W&O"9I[3)
M S[_J.,]2TLH-;NOV7W-[I]D9*Q^379[GD79A_RCAQL):" \XE<5)07>A3^0
M01;6=L:SV!FKWPAZ]>NUV_,LV,:!IC31S;O(AK".<4TVST VMYU1+MG W\6P
M-?B X^#,AX7J.;2"N8XWO?7 !T\XG7A":6SG[6NSS3G%_Q3C(ADB^:3(\H?2
MWXL<?'KK)!\X^_01YSBG":CV%:LZ!?4A..+^F4\F=7'-O6$1+H RM<\\1W4A
MWHI\X&<^F,\,_<P_EP9_'G2^71Z?GG3._^5=7'8N#W&,NG=^^'OG_//QR>\X
MRO0[_-G\<GKZ=_R<WU,:$+IP!OR2"R@&J]O@7%)4ZL*G=* 2.V/\7.)\=*PK
MG)BECAV9< #Z6 KM88@N\#Y+7PZ[4IMFSVV>:5[,/Z=/Y<?D\] ;7DP5(^D
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
M*@G=((697$X$BVO@BU8_[&,TBVF<?&1R4AVT[D!)MCG96^W-OQ4GL$O)BU+
M+8$8%^JL?1H]Q"C5N"\1)K'MVV':)> 19VE>V4(]]2BZSAEQCBWM:5/YUEK;
M^EN^Z09.8"<2-5TG'"-X'8Z+[1=6?4EQ(!(F-'5;EFQ\)"&*^?-QUC4>ZMR@
MZ>55/;BH7.OAE5::)I80'+[F\#3C>2WTOK?.0(Y P0[#L7'&YLJ8X='B&@B
M ].]HD<<H0[>;\O"X.($!R [I]=#I3?G,%F"PWHFT\'(BBJ49B?CDLJVN-"#
MLT,H64:6?$[.#!+&=JO"4O+O.%]J(MU;J>@G<A^%[^(@GXRJM@^2FZN&[-,C
M6'$W2\GS8/#+,($I+)!]E&\=W=!?2X$0IX;$*5,$8R3(JQ5OU2E2Y @YUG\8
M=0RGQ.(BK#@K*M9,]9E3SS:9R4N5PI110I/H55*4MTQ4MSBU+>S+050158I1
MOE[BK_C(\<A4"9HX5EX%/4(F"H:;VZ%)3&[8Y'4K:S9I5U>F'JCAK9).>K53
M;H7K8Z;/-W*G)V3$).<IL,%"@ZB CRPV]]V^0KW.2>!CWW(D %+;:+D-%!,#
M,I:%T=>&PJ2$VQP9'N-JUA(H;,;#O=EC;Q #TQ_$85 NN"K*E400("0H<&C
M9@./,V)082M259IUTI3L"N^G]MJ$^RKW $2 TB9GFS6/I7+2U&DB4])$-NHT
MD3I-I$X3>8"$?E3-/]Y@&.>]E?TDR@OQ:-N  $GEXK;A@2%[A0OH25MSSEI@
M41E:DNF?"RV?%;ZBY"AQ1")L(,PP8Y+2-LSW57D&GNV,BI+)]'S3F"IPJ]32
M>H%A3=AW0+-_]C@R.2\BBN H)QY3G9Q=*.!HY$W4CN&3"J\5FL1KK;_E<8F]
M!B:&S.R#6R[9M1C3Q]@6[M FK$\?HD].VFP0BPU&[W(MSULZONU&**O#2H@E
MYS(!!99\R4>4.R(1+L9K9Z/)-AGE>VY+W8JT W%PMVZ",[K5/DLL_[#&3*>O
ME0]&%OGD+_-GP>N-@^>SXTCL^*EU.%P+6Z)7=+ZIW,PQ'U.1]XYWGC!9P/,H
M"EJD1IU9-V:UKQ=>9#/&3'#5Y"#\!R[>=KX6;GBG@(AJ5K2=S$4)24GAQ+TR
M'382:_^!.4B5]6B_W1F)\TJN[=S1M&Y\4!VF;O8R%=ZD/.-A:I#1@A_7>VS*
M%\W9C1B^%B;&1YQX/J9[ 2=.$N/6O3]XU."<^L!;W_'"6% N$Z!0[I;ZZ7:L
M%O<&N\XK0*UW8"*#@OLAG<NK.*1PUA=XNG<$T&A@,2C35I-M=D1,X+/)0(VX
MWVR>->5LQ6PZK^J:B(];!T"2SU+"-9FVUJ,B]23N_LF%'CG)7F"2Q,3B">/1
MO$<T_VE[K7WK%/I8)\:8?8RZ ][X#?CN68B'F*>_<Y/L)KFD37D5.\=*S/@3
MB)R> M,$"5!B_DB!''FJ.J"5APCT6:0"WIF@!H7?31XTGG'RP?N$/DC\_#F^
MCI EX+X]^C$0W3D6S20F4O;9L=822J%XXVZ(B59*",8*:="@KFA >ADUP6'D
M0SZ.SM24#Y_S(TG:GR [-!QLLU'N&78 2P!4BI1@<_-*NAS^_]I&-A?LA&>6
M,(W=$HLPV:(%E_QI9VWK-A(;]<9I!]R-;4^/+/>IE2( 4QF)U8=*<5%C62M'
M&N"=NB<,:V.3Q]P,NIOH@VHWP7$+\K6MB4#G'/NA+?82P94@C<UZ7:Q7PFTX
M5-K$1.4UR(,K.<9G-%Q?<?Z@1M[V0J/?H=?(&^6/W>>J/+W&C\W&V?N,D;0!
M5YU;/L3J,NV8,>32Q8=+>8.:)9:Y"$W>#$R<V9EP//2LOQJ!EF>P4GFZ [=<
M&)8=%>4\HG1 &S1),[P.(Y9LR2WC!W(7>@4O\>>+[\='E[\87Y3ET;E$"N/K
M9J[X4E8+=NM#1XP5-K;&T?3DP?;,QA_'5.!FNTW+P2A:\9Q2@QJW 1<63J(F
M<6?/+DQR:)9;=7'0 A'+SI G]0Y4!4S/PB<6'4K8P5NKS-1O4_@_@.#J9-O]
M[]*6B))O!PZ%BPE_2. _$@O!J0SV2H29+=?#-CQ2D^9C-)?)?&[/G"]&S8"H
MB"SPEUT1DI9$H^DP!FG*6_.F9@6+3SBWR6K@ML56,EU9=%H^E?K-L9#1V X^
MH^P%IQ=;'F"&)2MF3**OI3$(L(F5NF+]/\L+)D ;_].T5?=QT3;]0V,U1HIM
M^/#7'\%4OL8\JT;IKFM*UC';-,=IRH<ID4*,\P1^*ES'S (5F)H-W)?QH'-Y
M -^*"M*U*6T&JR<CSN6PRM(",-T8]&+2*ZOK6TRN"=KB%B/0GIIT,&_OE+-6
M*&NRO;<W8>V;)O0TO[3 "QX.@/%[U*K1QA.:V_'C(9L2$=/-%:T>O!F@C$I
M/NW)+=RAH0"LN,)U%0<DJ31MG5(88U32S>@U\N)3WN\0K2W*"S#KLL4[%'1C
MQSI(5XK5K'D7:)OB&LE;00C//VODQ]_%A!U8ONHI@@%W]!>V@CSSP6A-,"C<
M50%B=QRY36H*+06T7+CE%D+2._AT)/;'D7Z&/#[/>@9LZ2D]S,MC\PSH!T.\
M2)B??&85,JROMRN087UK]TYD.+,BOZ!2<7O7>5E7><^<]=:UR+V@<M<E8N38
M/,:PO5JL[7^_1T* &"!_+:)>.4!:[OE7N'<YH\YV?J4$394.T.P/G&1,;)EP
MXYM<@SQ-?836 V?:)-B\A?CT8,W[&E.'5R=5M!R+S5L:FK:"M^*"1&@E3_5$
MZUDS9\4DZ9'<LKTAC9CEA!+<81& ;-P31*Z6OZ:?H7=* =0LR;N08MP7/=]L
MR''B'HYD"87;C\^V8AW)" 2B_P/_)&%.0WL:A9$RF2PS$=^%%5R,%!J,YK@L
MP)WF8^05M+M+J(DD=^E -[1Q)B&(3-*2S= T7U$^QC6&A5/@6C]L:DEKK;VQ
M5=S(WF^;Y<4 1\U?QV%H"I7, DOMRZA% $&E; P4J[5ID12BGEP;:4?NRF1"
M&"F)JTZNYPOW(S;F)8.CM!H+0)-#-03M _U"HS@<PS'B"B1.; -90#U+X&OX
M$J@=H_AB9)J:PI/#9DIEM;"'L.Q5HG[GMH.*=2A-0=8U[TATM9M94]$0F8TE
MHU7B07._!/0O.095T5YE6BM7TQ:&UX&=5W5B4_IL4[Y2<VJ3[F"8,"*<R10P
MIAHH '_&7;#>,#.,)6NN1R,1_2#@#;$Z1A8Y#Z@J<0'&6Q=PW]W6*7*&WMRL
M4E"/0E2<M3*9\\@.L.LVQ;'8 <+]]:C7#=\.A-/$?K'D%L 8LE&%(N,8*9);
M;JUD5"" &[ C)#/AB*+9="ES./<0+)6-7J=D3$G)V*Q3,NJ4C#HE8]8D?R<4
MAT:QR\L?.9YAZ88OS#L;Y-3I-3[1>U8ZC6:[\0VH4"%VQG(:S9;;S[JU9OS
MJ6WR2$F=UB^W0H].*'13TJ%3.'/V1AD5>J^LI3K:MTD[ :F+!&OJNK$1=]3'
M6@KD+74763#NO[K60&WAWVOAEZVGKNRKR$GZ'VEVYAD[PM'C RVN+<E3:4H6
MJ;\RQ'[)GFLF@XBU2M37;#U'_DNR/^@%/ 7$C('(-5!D&!FLOBE40#6CZ.3V
MG%A</E4*:XS"3,(OB;O$):Z)"UGS.L4X4_?]1=]P>J )5'% MWPT=\_8L2?7
M1:;%1J2PRG:L0MO0(<X2SA 7UF2C-_=#R8G1^'5NDU-YH%'/064)FFBIV0@!
M)Z%11G?6);\P>2#[F;;]*,@$,X]+I  MO).!^<CM/[3/5K4F<S2/E5',V,!>
MD4L]ST^*LY0^&]X/;S6.D\RDL-&2N<>0,"K_A&<!+H+IF*4VE:DX@I#8F(62
M 8J3 8\[MP%B?"A9+]A_/6G8UCS<L"$7:_@ZF5C PEY,00=B)-G5Y..F4ZHV
MHAM.+R4K2ZB1//9DQ,CH:$!MDT0X3E31B!</H3@ NYS$.K<CDJIF5=R]7"3%
M08!='">)0JW)2E_'.50X$[R14!C)KO DY%Z&"5_$A'>A83K@@YWMLT7&*S90
M=PJQG$V8, &OF\[N3H<'V.EF-6O>48P.&S8/V8%B3H"<5K;Y%7&//(3$_@ZO
M9YP9?%:F9#=/_G39"T>M?5/$<]NW$37)K]!SO"-."W9J]\_,@ K0"&8VI!>8
M4'P^* E-WCZUTC*D-A@'F!&0<)A>\0@Z3(-:6.G9<L63)QP39KZ5H\U,G2/@
M-B9BW#-*7>$-+>MVF6G<976\ZF$#AC/@> %7\3-89U>32\UD+1\849$/7>I8
M"RMDWY54]$@!0F?LT4_1\2A3K_R8H;IIF-9Q9NX/L4<XWX(0I5_PXBBCW".X
M1GF6U"K)D X-BRLMA?*56/"9-8!".8@I=<]= >,Q>E7MY"2RV1H>-3=#TON/
MU'$S";/A*/]A@P@M-CHNR:.A;6-#[ [6E\B0A3DWT'/2.%E YDHTL1(^N)*:
M6Q;$O'I3 IAOH-Q":@A4KSCJABV<,3B=5T/EZ[-=9C%";4J7!=E8WB ;JH &
MZ#A5@T6;:U12X("0X$L]#>QB#"OBA?)KX!,&3;%A00E0IC>WLSPJ?*<UVHI?
MQE-X0DQ=A!4/M+4A&6Q4EPVY?P?(3(H#EPXLAW^.=W?!GSIK4.21GU["A3N
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
MU:4&EC,ZT*?13=>8#8OC:J1W!I R>J3QDE Q_>9'[QBVQE^U.VON-?_C.2:
M'K%.98OOV0$!:AS-BSF"#9H?MYI_-R,D-$$E4 G(Z611+2:6B#"!4_V>1UB]
M<^[@P+,K%\.TEDYG05IWIFG9N+1TQP0WS(PQDUE#+?HEQGE[&$D.Q75B-.3\
M>$L*C>D%H1RJH6P55=2[,,E5/8F33&*B/--/!KWRMH((%0]3:S/Y3.)(E8\D
M-64V_<#D@9+ZA)8*LRC@M::-=5QVQ5LE AU"V"YP($.J362G,NZA#XP;+"G)
M:V^4ZX4:N1*%M](<,7<V%?OB>^:=9J]6_:+M&F^]4YN4UT0M%;;7(>XI(>Z=
M.L1=A[CK$/?LM4O%[,*\Z9 CSLST\(9'LV,;K $V2D[%DJ1SQ026[<=69 !8
M7.,2+/S Y!O1S"4)[-EU1/GJ2H58/N\[QJ.F4B#G:YMD6EY"I<CB/#&0O9RA
MR?4;"A@-ZGH#&I5 ;;(%<1_;J:88]H6%\E' 0[SRX<EIJ=5-PYUB3%(7B S3
M*FGS6$,PX; P)H-I/Y5[ HN4-M;$A\H,#S=M!1/CW>#14[")8E<-=PR#SJ*X
MUW.;YY;/"1:#%E!NL3A@KSC08G0<MQ_'7H]VDC7G1TL192.N?W%_32G3MI6
MQS7#MOKCF@*:">LDV-8Q;^G$3AEJ10[F6A.Q=.P<J#LPS0D5(02YB(;P CMY
M)4 ?> "@"&"M=U^R5X4\/O\1.L 3)^!@%VQ-;0]&QH%8M VP>>?<Y%H46>=<
MI9.WR.!EF@;J9X 8(>[B#Z&[V!\,B]UHUO<%=A@S1@;'^4_@@<88V;1Q4OR.
MMH3=H.)0!>0N/,H=+A1 S1L .E;2=#-I=\)*JGQ8'N#A6=1Z3*/L9S&BUKQ#
MSF#F.J4BG1Y5KC)6E! H*6&027D,Y8U)D$;-D1H_C#@$F?=7GNXS=XU@=E@'
M6N#"R*PO@BT1=1[ %-A[%TDLB)=HYO@YA?AX(,J,%!VA@T)2HQ *FMHNCN3^
M'M*SG,&ZA6:;MR,ME]B3EXTU]+M6YYX@:[',,@H@Y%IMX0QTU'=2T),W6B=?
M,GC_R.")WH$Q7,YMR4#MIC-]0PZ-_9H4_4+N&LQK6&G@[=DIC]8 -N,A4-Q=
M@Z$WY+#)G[$V\2OK6].2AGM22YXUK^..[>4'[K3_ED\@C?6//'/:O(A3%R(/
MFUBC[2NH30T\'3CV^M[?* 8K0LSK#JH?GS\]7_FDP,2LB3#D7"<<Z=0W<\&+
M"<!VY(>B>2*A0(F01;:SH!V170Y>%($+Y\5&-7&>8/R+_3A>:!8VH(9%TD7[
MAE"Y,I7;-,< 1?^8XW7#D8C&H$\HZH<D_Q][;]K<QI&TBWZ_OZ+#Q[ZO% '"
M!"EJ>>5Q!*W%HW=D2T?2C._YV&@4B+8:W9A>2.'\^IM/9M;26$C*(Q&@6!,S
M(Q#HKC4K*]<GI[E@*_07>2R)[Y>"B Z37^S[N&;.<5&.37MAN(Q(1]<0F*Y:
ME,7MAT=8@B9>3U<7^XG%<9RVW1HP:O^2Z%EL.#%I)=;2@</S="#O.=.N=6'O
MEPUCARSL&=U_ .IP# P.B(\&NUAT%M94@H4<(DV:T=6[G">GSSY8&SL#?(K@
M<)KQGJOW?8!J)22W>UW@@TGGX$T!B@^[]FBO)F;." ^*S(P-FZ2(NDM5RXF[
M)KOV=S:BBGS*IM/^_IU5*4>*6/F>W3K.V#H#!C4LKE8\9ZU ).U)NN3B\C !
M#JQ9-F_LD[!)291D[0"P,J&@@2W_0,*=%+MJ.46<SCGR^NS358 5C(K97&Z(
M;B3,$,CN>>;0[C,SX7;972TC63#*VIR# AL $C"J;M8YR-D92RRV-)"\-7!X
M&EK6)YMYU+Y2,?PLSHU4"W(VT0-.FR]%G$U1[(Z8G=1_!185PQ=,C%EP!(90
MN>#3\'"90]6&WY-("\SEV8LW@I/!K7)=% <-,"VJJO8J%X9JSOGD"=\Z@+F
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
ME;O(-HCT4-DD $XND#3'L.(O[2WP&S085M@Y\Z7@H;1T7$F34E6@G1C:_,E
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
M^ ) YTF1P&HQ@\THXUN.%3QX05HC^(H=+A^8U4W"EC5^\:,UG;J^U1JJ2S!
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
M*W1=KDAFSB"8H%Q+)=5NA&?-#=U@9[4(;;+:S$QHS8S\N;*[M#T3J<FJY4.
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
MA\E+6@MI<G1X\ ^B?UYZ^I*GEN"_':U3]N\N;W+Y:IK\:DISGF+0_Y.6'3I
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
M9P,I_,+3JV)0J<<1#C&NA'.O$U"_4(PUBU^'S 9X):K<F@0TDTXT)(W&:-G
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
M^D/9/!6!;&;&"[- 8CB<(&$]Q[<-%,SVG+?@CU5?P//):<:#Z@^9/0%MZZ)
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
M%>DDFER62TC'$1(03DX4-_.DZ\24F%N_/QE);&E9C+B4J$;/R5%**60J/=X
MMX'FO+<#AXYQ2_CPT'W)4NNOK/XF,(.8X0H# =(<N@,<REMKB5(57R1,:C;
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
M;%CND_422EGY,Z$RI\[A%V/(^*'6D)N%._H_%?I?EJ<J?O7!^)AU [^>9=\
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
MQ(U*-WB!S 0&?RV.@=#(23;.E38P,<5P FP"/R%NBM?>8_&Y9XC*9G5:5.[
MY;X3>^%4[=2+CE;RXH2BS*/DR"F.K)46?,F1)4<6B"/KI4%?0(;<7= A800L
MRI&;?W*!]K?;'+Z<:)X6;4F#Y42W2H,'%WP].GL*1B-^8UZS% .TJN5X@<N[
M#:('I6\Y;XII<VT*BO%+IN-DT[M3MGDOU,(/8\CR>/=ZR(,ZWC+<L(-PPT@S
M#<4(7,Q \@=,1!C0 @7-Z3.L0J-2D1I0JMH0-M?W0+F.3%"Y,*V=AR(*X5$I
MHJ<DVP.RB1S]&T$.#T Q=VS%EJB=PB5"%C9OMR3A! EO(I]^$R3<*%XN;TG"
M'X.$-Y'YOC8)-X&$<[Z(6;9_*Q3Z^^0RG9FOS/@\$PCJSI IOO8.<_XDP*#+
M^K#75*KP[[63AJK\O=YN4?;*WVN?2UCX(0122K'4%6 A$L<STL8Z:K6F-CH%
MBV25BK5(=)QUIZR9UF1U>7"X"4*.[GV=%+OH;TG)193(:84GEX>(ZQ,RH,3:
MZ>&@Q(/S$1Z=W3DV!<E,^Q7,":I4!]@MK6Y=&38[,,?[X0U9'N]>#WE0QULZ
M3K;K..GJNALP PN_CF!+QZ0W\;+."#-1E%'@Z@/-.XQRKQ\?<9]LIGP5!42O
MWD?,-DP_<!EF_P:NRXSSP+]S_#\9.6Q7"SC4"V=(EGZ1CT';FZE!M47:/JV5
MP;22ME>B[<V4D=JFW&X4[)YWZ3_9/5A\1":I./U*X#%%\SR&S;UZOF;:U"A
M8:+8&,79''X9R'X!(P40I&*96L^T#J9WP!X(I4T$U(AD[OL_/-9%>KD7U')C
MR\)TUXY[+RF%^DW?"CH9KU:20FV>%JS!2:F%/PK!;R+PMFN"KZF-XC7D+ G^
M8Q#\)@)T6R#X&<WABM83KO17%AR"\O@?*P'HQQ1/K93V>EL!H+PK"-N -CZI
MEFE?);&O1.PIC=:V CXW1^SMTM]9$OMJQ)[6'6T;P'.#DOTC7/:*HT_XN><8
M8_X1_*+U+$:__/:K8;[RG[:%]02FBQ.<SO"N1VS6H_RF\#P [*CKSG"DV6/T
M4-J.#P-I+OS9IINB+ZYF*2/-I<L!_H !? 1ZI=*OV*179I;!0YX/?Z &OL>Y
MKFEB6^&(%=T"@/Q_1P_?SO]U-$F:U>H_TLH=B;^0=* _"=,C^;[KY\?PA2F3
M46*#2-,E_H)!O^(Z;Z%1,_&1SBQ+>?AV]^-[.,:\U4_O5V+C)[8<-DNPK')=
MZ82<(YDB\7/\QT%HS#UTOUU5SA^ONO^J=*^?KQZ_*)KUIHT]6>'K"Q"4S1+[
M\%49,+ZI=6S4)FR]OU7I?VEFH/CH2/DU[01^OTP_ 9X/M/[^/]]?W)KVS_03
M,$QO9&FPL:9M@<2M]"Q'_YD\&)I'S&S5E(&+8OQOOJ,?);CC36R+"9(>^$F>
M)3XQ^<=7S34U>_K96>>^.,.!2$#QB,Q^@6J)6K1I9XO2QER)^LO$)'Y9G>%Q
M9T&W]D*&[YWE*G=@)G?WC\^__W'U]*P\W#Q<*1?WWQ^Z=W\JW;M+Y>G'^=/-
MY4WW\>;JJ0A3!4)$&$+R_DCQ31^G('X3% K/P='?W3]?/0$;P&KNGNYO;RZ[
MSU>7RO7-7??NXJ9[JSP]PQ^^7]T]Y[8LP6+3<I]+-_[W">KD^.4N&,)@^F*V
M=1)SW;LOFFW^CPH0780*$7[IVL:#"VK2]NG7^_ZUU)!/H8*\#(L:/<.PYR@U
MCC@JK)VV&O5JZTAA@,Q&*-/<@$G50\A%2-;_.T*? $@H49<O_-T;:;K\/4W5
M)7Q)52KB]QO'1QE..M\9T7.3P*[1(OPUX[CG,7MTQ'3"XH#QQ]CQ_A5XOMD?
M"ZIEP_A *  '\"J<0PU0!QN>A41(:/ W1(2[FMS]X[?NW<W_UWV^N;_[,C$/
M@J,2B,8Q:/Z<LM,91!MVY[C^X(UYOO)@CAAH&\*@RB?0^A;#2PK,&H/^]@>*
MZ7N*%_0\TS!![^&P>)$5%@'VD?Y5?)'_:GS]K)B 7]'1B5P!$[&#/A@IP&HN
M>4+?@ ==Q646H5?3[KN:!SQ&3V#NIP$_>L?*C:T@7Y&YYCM*C\G[LQ:L#">=
M>#%H2V;#@AES&;((8Y88: 1K0VB@>&/X\]!#SRRM7.F2Z-'X8N3J^01@PP>
M!2K_#32TTN"O3(=94D:JRZCRF0[C@-327>9'TU:5!P9&G.7\Q!,&V,5G M_%
MV>-45,!7;N7-U4:C^ OTL842P17/:)[RAM@'_H6_PW?AS;I#80OXZ2_'I-KU
M.)L,?@3<1PPI[(9PXYQ^G^%M9+IBW#=]>BN]S!LQ%)-8?T9!DP3>@,:$\IS<
M(&QC[&'SB0!/I](#@]8(MX#.6$/<QQ27W-\P"E#C3W2/F[)TJS@<'Y[PAJ;G
MX2GC#)+DH(K'\),W^#,31VIIF ]LCN!%P 'B:3* P(2.ON*Q-_A)G#L<L\ML
M?6 QSP.&T <V@-N7,=_%D$A<-N"6.:F.Q,HY?7>^>HH^,%D_EE2"UCFM8*C]
M9*Y*[')!SUR],SU 3E+N^WU3QP_9JV8%&MIX\'TR^3$L((Y(;C+."5_FA>_V
M8&HOFDM[IUF@KVB"_+ZXYP0NDBP_".(7+-PG7P8/!)8X1L 5#NYK?+"!AL/
MI@TI<N$/-!^6(-;'B&%^ YUF2SJK>$ROF.^5@6F #OLB_2@G@N+PT3/8^Q=4
MM*KR!QW'3>)<DQ2%XT?,C N$GT1T1*&5\GC* W MG+RA*O>P%X[]5>D:#$G!
M494+H%I8F6UJ7Y4G#02!]@8BDKUK8 @]NYH^3C[R@/3H>KW !0+Z YGBWR;*
M2_YURU=N8?.5"V!]5?GA:X.O..10_OSD'W,!_HTYP%)3?[YU A/H[3O0-9R,
M^96.\PDV\!;^KCS"0\SXZL#ZP;K2#)C]=_9NZLYQSOJ@$$H)M/@-D(5.W@Y2
MX;TS)%;QX\7]OV\N*UD@I,-EGGC^ ;:>#4T]CHSS6]FTG9337$"Y9NRA\EUS
M]8&"T%M5:#OQ!/YP7,M0?F? '@,E#KY11H%N(9WA.K;V:KJ!AY8YA3HSQD%Q
MRD_K4\93(<S H^>_U+[6.A)NT L^@\89B:,6PF510I%?(S'$1247-R\.8'";
MK 5%(W\(2<TWV@9S* JDHK@R><=3^!$ $Q8M!ZT'"FH(?\/,5X0O V:-R,AQ
M'8M>XP&DT PI]VG+U)AZ!. !JA'>C@<M=\"#MZ PA<F!"M29W *2+^%#O@;Z
MPU<&SC!Z@ P64H$:H#I<)I561[T"@"3P<!S0:X'K:Z8UY)UQ/'W@P&2%F23@
MA@.S=<.5)5":FMPQ[+8#/Z%:[FGV3U(C'H,'A#?3DVOG&SJ B0&$TW3NTD2O
M.->"H%-\S<5]-8>!!805WU8=Z^8Q]('3JQCLL(-G:9(("8=8FAA*48R%;( Z
M3 \]4-P*L(G;X5Q> @!W")?X,=.'Y'NF7U%C6X+B\(S02YT$')0(;OO ++)<
M/STH  ?!IYEX *@(7_7#-I%0R*#W$"8#8 FANPZ'BK:S0(\S38Q)$.*#TK?Q
M<[JBS5=#R)]P+B="-J*Y,IL*(A,G:WT&)@*0&DZ<@6!PQ@RW7H>=!"9T!>MX
M6%39I%\C/N^[[+\![K .]I(M+XN#[(1),UU"/&"1G^A5P+=R_$WF!+R+S@/^
MY'.#+;HNAX/ 0?H!22C/H0 !O-<7M] E%PFV%B8!2(8AO(L&Q%^9#9+)$2R-
MP!X@+(:VHF66G,+5*=-<H.<LI=H=N:8UJ50E^8%UPUD& ;A#0I<S0BH)IW+'
M&'EC/LI4/DE-\73[>!$9[1H:[5S_<8O--HBWAAH8<KTQ_S:\'9AAX+B<&<E4
MX+&K\%?#R=H%V_&YI-4U%_C)"7P%- _J493W864$7(J8[A!V&7C'PYLDD:IR
MPO8>^"CM'-<'PY[&S73XW##1=N":X9TDF<Z9.F%VHJ-]OG[@OJV$R#!,=-*A
MQ<5E'9JP:.JS2F]<P7_1(#-)7.!))D26,)IC@BVL$ ;?$#J7U.M\POIG (;K
M!%VEG5;"QF,*'G]$.TB X4EPH8!FYAL\_,;83VLL40Z7U4)Q_R1'R+%R/F^&
M\/W8#&.GI_EIDP$^4/J!99'Q"D8],THY Y/X8V!:;#5$0PIN$<8< "K58#)
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
MW%-A5H;D#T"0'YW)1+M22.^7D-Y%0KL4TFLE:];K:J=],,F:I50]"*GZ6T_
MX?32C#,SGSZXP)TKRAH@R@PGP(L($[*L.&6F%I]SEORM?Z!BZ\N(ZV9';=:*
M8=$W%A;7J;TW4MK4%*&^:&Y%9F=4D>6- K%$N" M; (A:8LZ:FF6+'HN&E-&
MEXULC*M,W#V:7WHV*D8^8*:K,)CED-X?5;/UQ,>)NOO8X$KE!=3Q(Y<--9/Z
M>P5V-,<9R\0>RJ[!Z]Z^"#QSK'0]:I:+1="I-V14AI^*\ _Y=YT>=NC$#L]!
M6)]]R#1L_<,[25,==T7K.8&/M>)%/S;==/5@B.VH=!86QL<J\++X;OKZXJ78
MPUFG#6?@^?*VV+&)+5;D?@@?#3R%41N#S"+ @<T6K !<7:8",&\#QK>>E]/7
M,KM;=&8(W&98C+?:JC2J6P]6/V 7/H]HY"8BD1M>!#MJS$9=4ZF52C<\)JKW
M)LM6I)7F6J(I!C74AI^.SJK'TX4!D\TQ>II%;0"\ 6,^DA26\8W:Q?:8_\:8
MC=W^9I6C$XP>UHTJ6O7\HA;N1AIP;.)0P>YSI.6D0 P\U@_0Z?K*O'RJ9&>V
M+-A4H6SIUKO&8O+L%E8[=7/P?/Q=^\MQ+Y!VT_NM-5+[K>UUF>NMVEBM]HZO
M54P,!:8EG H(N?K\IA1Y^FD2:]AFGSJQ8MY#KW=V%4H);FY*DW-G$_C!A=.M
MV6?)&6R+6%+].3G= 2J)=2E:N49D_V]$]@4DE07]7J6TW2H!YT29GVYL9<PT
MU_NL[(8T2X&5^WE'K6=R/G,I>?*2+!_;'[U(9&^+!)S"+SGW<BC,SN>ZSAQ2
MG0NS&Q\GA,?%4GXAO(O @]_(SV61(\P;F*-]3-(MHI1<R'FT;B3M/PNZD^@U
MDAP>X]0@'<1)O]4"WJH_J)$B,[K ?]H+XY8R&LI'\2#B:4H_4R-P$8UBD:OC
MZF0,JP "9E^XX@.W0CJM;2OVO#F.R8IA\T&LM$$D:ZT6NVZKU<8^=DG:X8V:
MO+4R[XF$]%*JXD-5Q40#=T@"V]:_]2S]6RWU;WE?55)*HQ J=YHS<M&S=;7:
MV<>;JP=D_9[##EC.2ZEC#U3'BO/?MH)M9BC8ZG&GU*_EY9@M7(XY/2F$MI[@
ML5Q4=4VM-O,QB8MU^6:_]'=J-V&ZCS*57UAJ^/W1\-O3TZT,/=TI]71YIVH7
M=ZI.3_.Y4[4]Y5N</B4?_"Y5P5+_Y85H17,=CRE]UQE.7>;!ZT0V*>$A[*.A
MO#GN3Z <G:G8(5>S/?'0R'6,0,?K1WV&EWA@9G@3 .8+\AJOC<"*Z]5:YZL'
MRMV *;ACY:?MO%4&SMNQ\AR[+&0XL-J,RS>VX_.[-]BA%T;$&<NK4'BUJ\>
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
ME:^@^54CJ.::S*=L2<<:OYKVV *\9X&* ^3SZ>'?%Y\5B_<90S).OM=C;P+
MBG9*GGSSK+QR>=\/\]/[@&<=VO8YH"C9%2QL&413Z&NZW @X!"!)?:PJ%R!E
M8;:VJ='2GP# W<++E$>8"#.^.O N6*!F.*KRG;V;.OP+=/6&Z<(:S='GEW;D
MRB,,"V.< Q",#T$K6.3.@$(7@Q02OPGI:SD(/4S %Q8C%"(6-4X=[N UY@*M
MIV:TP4-BB)DML@G=@HW[>-NZW2IK_E"Q$WY!@(LD5BW48A?M3JW=ZEQ76NWK
M9J5Y>GE5.>_66I7N5;5Q56TWVNU.XQ 260N0I%& ;L%=48QE3YN+)$V;B1&G
M;[5L? Z-N9/8U;(_3H V7ZY(>O=K;6*4"P"ZO'4J_H"8 ]04O\RS=R'<#YSO
M<=+<@=&[F#GVR'3GQ8:5&#>HG<R^J4T5;^G:QFT$9KH<RR"IP0=7$8VM%![K
MU*;O 1<F-E;JYI6DT//L1KA[*(<^5I#]Y&0/1 \&)FV?/YG6!WJYG@?M]ND>
MBJ #!T+P)CS+PR[B6""QT]JMV)G5?7YUF2,(BC^Z6C6[NDKNF+T3-8>-=F[L
M5Z DQS5+=)._F#G]^.A&TM-X)2%SJG8:)9S9-QGSX+*19AHR7<B+C*M2Y.0M
M<MH?7^0D#"I!:U><U.#Y>Z2S-7!/0ST]W4>1=-BPYR$U0[,41WF+H\['%T>2
MM!XL#802]S$3=:TF?IIJN[Z/\N>P(1%II?UU[QQR^Z%6]>/+,"+/.X>7.+=7
M=ALU\3+U=/;HGO8?.E!$53\=10V()E+)2M&V7Z*M]O%%VQJF8*NMMD[S<8$7
MJYU:0@J5):0^L"BG)+88DY0IBC+-M\Q2+$VW5-.MRR\D>R"3QZAS]A#C% Z\
M9*.275S"VXT/._Z!(+,'3F4K&5\GZDE.YE=I:6U5 +D!2US1*650WC)HQSG1
MF\\02A- 2&:QOZS8@OJDT]E#&738("C,4"R%4(&$T(ZSHW<@A"2=K2V%Z@4N
M8E;BH)5DT"7CM1<2Y6[V4 @=M,=YQYG7V[#M))T^:^_KBK&&6J_G4YBX6 [H
M?99NB7A:2AF&4L+MEX3;@Z3OM=%956WF5&6V6'D">Q]8.QB9?G1V#G_43#LJ
MQ8._E<+[XPGO3UG2.Z732_Y5Z@3I/0C*^P8_1[*]2Q5Y5XHGU*MJM5V0@$*J
MY-YNCS)1 ^QSC(E+55"J@H5R+#B<3R_+-C/IXH,KAKDBMP$BUW "+'XV(7.+
M4PIG\3EGJ8FT%DFYJXGYQ4R7\DVTU5HCGX8HDZJ@L3"(G]D_(E[0KS#5)B?;
MSRN_&>:K+ ;X\.WZ^3&SFVBL.J L/9AXPZ!?<9VW\*/)S[ (H?+P[>[']_D]
M2V>6'9S8*%BD&$Q1KBMRX*RBD+(DI)SCKS#)<#&Q7Q(_#T(E]=#]=E4Y?[SJ
M_JO2O7Z^>ORB:-:;-O8DGW_!<NTLL5=?E0%#*?-%J2-="1WVMRK]+TV]B8^.
ME%]3C^GWR_1CXL7Q-G%(S_<7MZ;],QS%,+V1I8UQ&RT0 I4>=FQ/I;CH!#1E
MX*(H^9OOZ$<)RG\3NV&"M#$U2YXX/C'YQU?--35[^MGUBU(>G5'E2RQ(BC$B
M7B5.6XHLB,\3_!1G,,E[4\_D4G*TBU6?>;E]7'*LFT6\Y4#89\$(7%FS><@T
MK/],Q7MYK7]%ZSF!CS5V?7X56S==/1ABBP6=RL=JV-G!I"X!O.3K9%%T[!B3
MK$G,6X+ %]*&B_4/B$TL@\=](#W&V7P('PT\A5&=Z$6*#"]6?K916Z;\[-O
MU =B^WD7"TVQF8\*,&R*@4OJI9G\\PJ=UU/:HP$@J%5%XZCVG,916PC@3MB/
M-Z+WQZ58[HV=M"B_1V?^0$<>-1)9I2RZX@'QPT\@ZX^GL^T3Y=%Y\XLX@8U<
M<RC["HE&-D";*![-OJS1K?28_X;-,'J:A32O> ,&IXE-B%ZH$@HO*9Y]:FGM
MOG(X-?Y>?.WT*<5JNVSTB%JQ(ZH?3_L#DA7L 5 &NBP2;T93XF<W)4"R]KRQ
M7HNU[:#H!]EZ1;-N(EE\PQ5>-^Q>1(W8J,E$M/6S 'AX)-7$D50\IN.QO&'W
M)69/ G#;F3J))<0Q];[)2<QVCOF+RL+N,RNW\_9K)L@N08'8LT22(.\*80&J
MH[9:HO= U&@JM>_4W'+O80,P>)D)M &S'/)6<6$%>4]\G((.PCX&@)YPNA)&
MO+RX[ 7;O:$"3=:B7W1BV%9ML@,7?#VY87[$3HAB$D7Q>0.24.102XU4W7VL
M_#' =G,^J P=! &V>M P10G?YS+1C6/D(/[$_D^\T4GJJU0@ %M[X:SHLE>3
MO8G.%Z*SQQ)5^&6C!E&\/QB.N%X+?'CX?QRAB.,2[ W[%#NU8^7'B!I-D4 R
M>9L;HB[4'!X<%\Y2G6B1(_4I 42^>=0>:@;L(0( S#2B%FQ.HH')B+?=0#+@
M+4G$F@-J\?'C^.F8\^.W;O<AJ2=ZS#+9J^ARX,$^P//XRJ'CFZ^2^J6DY6P0
M:ZV%S2TTET-HF^@(6V"Y3/8QP?5@@S,_XK.RW41\^TU;]%6<;E@&A.-@5SWL
M0,-Y?Z+=RSP<W$KWD=6VCZ@RM'MLE$=&70LO<+4KM?NI'[?F8*6"Z.,VU\?(
M>*2(Z'A=%D%J8.\GX#V8JZJ\,!O92!5]>(9@ZO.FH*\L;! HV@-=Q!N./OGP
M#X<A0!GW(R&X2X:;Z.^2UG&0=WL94W<GWI=OP)+M7&,-,1.]@[P9O5.%="Y"
M[]0/V.WE^J31N.J>@*BZKE<KS9/K3J53/SFM=%HGC?/SZ]I)^ZIU"-U>=A#%
MV^&=X8FA= =/!<S>^GS_=YX9"XDU;#,>+E9,\4WX[T]DZBO46#R@*8.:.YM
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
M_-J%5SXQAWETC:M3*R7/!*JT?"D?<_Q09%%9V2RTD^5+WA$+3;G\VQ""%P#
MY&U_D\#C1L<M=QQ<.MBQN=F:Z]:\#@?NI,3NM9#WWB\6&E&='D^=KR6LO%PN
M3R+H%]>&,_!I)H*>*=,=:TXGV%*$9PQ(KA#RZ.DDV^P!?B\*<N4<$U.?18GQ
MK_ 4/*(Y;F 93'E88!-\+,82?7,^#9Z[U$3:F!\C>%XO/"'MS@?C<.:N"B%)
M0B4*SX4XCRQB X^SMS&L&A5T'-^$E)O1=W0?6%AQ>3.**V\94U!Z:@K* 35S
M4E-0U!04U?1,34'9PRDHW4[&%)0R/1^14 W--A"OMU*GXDKZF\>J]&O]SJ*J
MKEJT[A=+46-52N<B&6-5*LU%WC*GI5T#9?X F<=QZ2,[F].2VD]7M7M>B=L%
MM'ON=BH:W\G'GS:;+=,!]*X-.HO.Z6H,M%_$?J7SO+5W]&B9YW$5CTLA,:QM
M3E+8+M6H:FVHG7M'%5+)R@JFKLQ8.-,];[98'+E6E^IVK;_>C+S=(I32T(K2
MT*Z8[W_4?CBB+3XS*6ZB63[F:AK84M!?S=Z4_5<$ K_/XC9EQ?Y3N<V(>? J
MT;.&6AMMW X_I6"H) OO@]*2-F$=9]1$-(C'P),Q6&7_'8C]E\F?LGIHE&@
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
M S-#BLW_$KBY&4_K5V06AC+)CY06-LXS6R+:WT(-K1I8I?M #\KTSFMZ7[D
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
MJR(QY6+-X6)-J8O)UX:_Z"3\SKO/W=)"#2IDIX@!B"&EJ$42PSX6B75JK=Y
MT9.BI[+H*:6LI0AZ*JU(;-!2U*2HJ2QJZFV'FE21F(J&JVAXU<QR522VIYZG
MPWF_NI&JO5_=2-7>?R@WHF+8JDA,&6-K9/</4JID\CK."TG-Q\FT[7*\>RHQ
M_QBP/POY4TI;=N@H/\[$?$5&>TE&64+D-*7 98<.<B6'% %5GX"RZ*=9JDO\
M..50QBCU7Q/32RLV5I7]-.RIR>344M-ZD8-(;[]=/-QE#A^+32:58T\3;QB/
M3CSW-?QJ_CL<@*K=?KO^\7WUB+/X01,0FX,5'%(LIFD7)W+AK$'+K0X?M"SW
M^"ML,CQ,[(_$O\>A2^!V^.W\Y,O=^?"_3X87#^=W'S7=?M5GOB3ECQI</4O
MZI,V9LA(/FHM1"SA,?A'@_Z3YDP07[W3?DV]IM^_IE\3][P4<4D/-V=7EO-7
MN(II^1-;GR$8;<MA)X\X%3=U]G)T [HV]I!G_"-PC7<)Y'\5T+" K5BZ+6\<
MGYC_\$7W+-U9?'89=N2GIW>?:>HN5MV=(>]TT%6AKX461.@)>HH3F*2]A6=*
M&T=M+DUNE).E08KXEA\@4 Q@TS1IV@=1X.FV-@&I9!DX4MW338;\&'" GGAT
M<63X-)CB*') 8]@I#9XVM:F/ Z?Q$/"'F&R^;*I\C2.A-;)P@+6_WO1ZG+-.
M ZU9?/#U6,JY&K[P%3$;_O=IJGN 4PR6L9P7Y@?/</F1PRK<O$Y[=0QK@J>W
MIV+T.OQ ,P"*5L"?D3_4/#U@&YZBE>L4=6UY>FHX&]S#X>R$;J9\WPV\T),/
MB/<#SM-P1QU/\46'-QA,NQ\S>*2<V>W+A59I]+(XB7VEMY/@;X8JD9\D!.1F
M+N 1D@#^_>R:S/8UU]. P1H@ ? RB/!&MOL*M*7;,Y^) >]PJZXW<1'+-/<1
MCO9"_$M2%>#T,P/TQ&-/C3'B7HBN])N9Q6P3MX[;0K(-3R$0%S_#[6\7@25H
MZ#O"7S]Q-$Y:H'G[P%Q,O! DS]B0>X<!^_!U#QB1JX&$L1G0'JXX\=Q'KH'.
MD($!M].G=J ]SNA;#EX/X(1?>X((Z(+KVFHW-BT] 6@R1] ]O !."(+;]V.'
M]7.\+(M6;STVT2U38S^1OL5-N9R X5\K,3 >(4]=8&@8'F)D_+FJ\@2A4U2&
M(3A :(;N>3,D7OT9,<I/R$KZ!_M["CAN(];6N+",7:('V&L1Y2+%&09_QT2?
MX4?TR?SM<,+TV(MKO^"ZM@O<'G1-4.+@3[CD"2#^3S"F@@31F?#_0"!XK_[8
M]8(30/YGL-V"J4=*#WSA(W;X@3<E"JMK,9ZG67 PD/=/A M$:+!'3D@2 'P=
M_JI%7FF[8%#1FB9[#/C+8]O+]S/<!AB2QM2F?7 NFF!KQ)337\7 K@WP!_0F
MV+7N/#'.3%['%K+(MS$[BRSEU3R/MW;(>%_8]D$B.KP]X_%VL\8WD+7%1JLA
MG@HV GP,J_RT:]?YIS$\?&2Z%]W-H^X#2%W)J0(II^C.0FZ29BI70>E FXC;
ME?QSOE>I^/^6V'3"]6+RWCR-)OQ?HE_B,J?)942 0\?\G9FPT:<A*L9$_%]!
M+[!='VCV 9;X@F;7.^[Z:?9[[5:[^TYCOJ%/T!($QB'LK]_(&R$,TO_[#MVK
MH/L*+T?XMS_1#?GWG'.%C%8"E.68S"$'R$\*:'-WQ_((>>!.DH%O\<IV+RMX
M7<CL\.@R<7AXALG0K',2F^^MLKO=?3V_N_S7\.'R7^?:Y?7]P]V/[^?7#_?:
M\/JK]OOYUV^7U]^TX1E\??EP>7[_<6ZC&9ZG(Y7-H'%I3 >.OEH](A\367X@
MU(!M<TD0XXBP#_:7CR+/?0QT>"+2Q\= G4P*;62%@<=T4D]KB3>0Q],&2]ET
M#4[:&OP)(M3F^N[8FB"[#%X9<^BE7*J%C( $/BT&^PS8LY\P7RUX@+1C *'.
M!1IL]=^,&]-DL0?(99]H(QK8XT"B^E^T7]@D/P0\ =8C>5CYWA.* 7__(\/?
M\'W4M#$ 0/X^N=^8Q!V-^#8<T- 1NNYH!)IND%C;Y&]_M> XCXQT81]E!<@;
M?\)_#J#C.D\0_TQ8*""??,.S)F3ZBOV"Y3-V3?SKF>G +?D&$]M!#<1"T\LU
M^.9(+0:Y9SD$&[RA'/8=X 7N"#0&0QM9("W!$G^VA(T"X,97 ,:0UA3!F%\I
M+ =OUT-PY#$G_7G\F]/3=-MW(X03P 2$>01U4U@I_'?1+<'1&8<>J:7X/_#?
M3RYN"\2V!;]^'3/25G/N,K3-ICZ15H@D21!XJ!8]C6&?X<W,(8DQ1AV-4"<\
M-FE/<6K@ (A> 89C#!=\EG@8-4AA)/*M_7" :&W@+Z;VA.3]'L2K_X$TE3E
MXV<+9M%] /\C;GM$M^"Q,5AJN)%+,&.?65V[',':N+")!ODS(*(I0)2#0<'/
M,F27XP9<JYL'9(W;M.@G"+0QH@TC#0SP%8EL$?!TQB3?(E"!\>+QWY%/ AG=
ME"VR/M1ZX6FB3FYGP-*K3Y<@<F54EF4:\(>0_#,?;)[&;(C #71; P0$6L.F
M-63^2@:<@TE([L<MK05B>X4/_YD5Y,QH1_YGFCY]!U*&AS;YWLY_<NYRP7?&
M8YM_"HW[JV3-KD._^1IN=NB+1Z(WKQ<6O180&Q+ PLAH+V]F01<TUFY]<2X;
MQPA 4QLA]?XW4.<=>94G/C-.K)\G8\L$]?VC!.'@W>>SX==_-D_KW=]^Q>>3
M+_E &)%Y"5D93P=^";UZ\^UW /_%[Z!?/TV]@IIDJIQ#5L%Y(,3#_\GE_W[F
M>B0( ^GL-H4+P7.G3^/,DWS79QJLW=)H;>F.]J>DW**0 > R!]8$V<9=WZ!G
M>>B5(Y$4\_ HR;(ODB6GVOW***Z2)4'(\4X(.V.Z!\:(@U[OTB@GY_%7 FH@
MGD1EU>?:*@-]%:P,]\DA-1:4V&L6:#YP-"!1SWW. ] \.F82WFF&*EW+/S-R
M^_K-N=RD)0ZRXH7'M>M$^U]/6,1\<B W,J60_PVNY0KN!&Y@$ZD293XUZKT%
M\?(A(1MJ*R#=6H0TR&8)Z>V)Z?V#]*(@GX?T"D6HWVRG 'L0 7MPW, &&"_V
MB)@#<:7TG&GD%0"#/M!_:IS1H@_ G09^  B!S"\'9^4QUNFSB%GQL)^1<!3@
MN[G!DTG0O2VSSFS$B1PEB @WCGC3F3AYM*K_A2%8'O2?&Z+*:G($U! ANR@L
M9<^R*70K]F(VR.9 = 8:R@4H*$A>3%+4@_N%W;$H[/B5O)77L,UFZSOL=^RO
M#\4V0'$!ANC.P2P"(PC=0%YL7?PH4AMB04P'MI)%-<$KLU\8)YMGVC!J!SK2
M,Z9;P%61R]F>1=[C.3\@NBRY<QFU&,^<TV'JVCUC&K HMCK[JR_HEWLWC4]Q
MRN-I3TD7'=X ?];\1.YQC(D)C\;?4]T)K$ 7?DD.>L0JCST! N0B?Z&FH?C@
M#*0RH<Y4XV3;<<Y;!#M(+L>DR[AU@=A88'EDI'UA#AM9P<H89T_%.->/<;9*
MCW'>G3]<WIUC8%.[O1I>JS!F]@XP*@SD@+$"S$?VK,<I,9];ZCTJ('=\T$G-
MR*0 !P8".;R,.+PB_L+S8BDP8;A PSZZDE"3PT1R#);9-DHKC*>RYXGMSIA(
MMP,5X\4R16J1'BX*T@ T$)1O$Q2>&;I'JYM/<[L+]XJW_#";,.'WI'/%T0"_
M7]! ;H%E2H[KO$Y^?A0[_8X;!:YWRSRLJ="?&&AOEN<'YYAW+SZ]&9V+0\?7
MB92/DU9.[:/Y[G-*N])?9&0@@TF-<$]"2\\ 9K\<8*:!)X(HJ'I_H$8J0/X'
M:*H$]F%P88V"F7AP?6BVWGU>K"+\I98)H$$^P_]@ +3H*/F%6^Q90#K-9[ ?
M,I"0)"6G2S!-7V:*(L>LQ3WN!N:.@')N6\^D&<.SM3#C\B#]K$FWA"B;62UF
MW-$()4P&!K93VNINC7DM^2&H\O##F]%E6/=R,TFR_49.#+N\O@"P+8M*QNIJ
M7+Y U8I*5"4D7%]754*J2LACJX2,&5K" T$VEJ^,K!0C*T=&0[N'/D%79#,@
MS8>"TO5FH?1\%+!&:>G7M?,P$2U3+#>D,D#YC/1;'G0<>>Y_&,]@Q)(N"ZLT
MPXCD:(KV'8H@[EKDI5JRMD;LA-R6PDC!' 6>04S"'%WS?(%ZUO:N7:%<1#[$
MQ%X,+-1A^#5WMTH-RU^ECCB++\9Z/\M@\IV@>1%09\D5T<!E?T]1[HKUZ&31
MPC'8B9*<*0]L3%S;XOY,#NHPF9+_SO(7*SH(5(;K8_T25L?JSYB(^1\]GI@[
M=7 !C*K@P[*J">,]P%OEBR+KF^QT?J[XZE3VY[[.?9U+,5.9(/N2"1(D6(\9
MQ@9JO%0<_Z""1,H\Q8=!XYRB4+1CI:1H!X:$/N'>YPCM$!!9,:-.RAB852JZ
M<'&3"!%R18B5/!&C3 =Y\G6T0JS'"H\R!?#3:V"Y_(_-L@M3,@^2B6UA#7E4
M))8H,\5,+8=BJ&%22G0Y& >I4>DD\@3]9VWE+:3,2]C.+9"I% L9T2$3 2.>
MTHU1HQ^QTUVS8"C/=T5A'OCD9K1I!+197W3Y)"Y &E6Y LO 6T.Q8?/.!WM#
M_Q//_3</6!).Q4XKU0=1E(HHLR)CN-]-:2NV76I>)-C8A8E/;\(#;)B%VEU!
MK*M25[I9W:+V%RR==?)-N+MPL3(VWDEC)7JURD>OL&O7S2AE#,4Z .Q@/O+;
M\"ICAMH^PF,%3YY+8#IZ-5/V1YC *US3,D*.C18"V15D7PF[X+!<QZ+YB>XG
M\Y/XIC-I)B5TLT9LJVCR 2WF5ER?^/0,+J^@?"1N;W*/%S-/=.PJ]<3"SC>B
MF\-4%*WQ.DXVIQ6D:0%HT6: N)<B[@J$:]SSGB'O?'_ZS!WA/^" 9Z*E!1C>
M"^+OJX#''8!C_<!/!Q"RWEB4A;^LBH_U4J19@=R[BF :+$8O?MD;;5D)GWGA
ML]@%+7( 3ES7QI9U#-MD!2QJO.,'NFCG%%,$0T\7=Z#! 4BRT;N3753$>\+6
M66B243)LKOH* ZOT74\6<2SO($/USC*5<X&#1D8Y[PTV0A_8U,.B[@6%-HL#
MO"W/8H?,(%U,G0L 70$X'@ :=P2$FWDE<)T8>K^>EMBRBI.^+1WCX.#81C@N
M&JV*U>XGJ_WM\?.UZYS\/85O*(\\PF/M7G^A5E J9S$K9W%9!\\H4Q&ESVAD
M&9A1PENPBOX5HHM#^%OX* J>8&<&&]L_1.$K%"O92-[C><(RT679WIZ /WB4
M-4E9D-B+;5429#^E1&H->0)(%N)8](C L&+2(1^8\S!VISZ ^*MKV[I7I8S(
M++.QG[,RJ##0SOO,;SAVQN&T9BK;6GE&S4:MT4BI< & "CI9GLX6>OK>#O9!
MHV2PWQ,?2,/2;4*_NQSX%(+(PYV2][,JQ;"\<L!U=8,,EOG(&ZCZJ\)=@ZR\
M0-&%E9JP7KE&5 =*H2I4T5#QCT4%1?7H-E P:PBRW,'L+"PP>V-4LE/OO]$A
MG3EW_7@!VUVO-+?&/6SQ2KU$/W&\A8S@L%*8'ZAODNCGS$M*J!E@(DTE:F-[
MJ)[Q+$J='P"UM+IPJ61,DN4Y!_9VLB%JV4=)Z7>18OWOZ"@K*7T5#SU-:RJQ
M6#:QD^,T5H4HEX3DCK+R-BJJO1G%Y<D=HZ@[.GK\^['NL2_H[+S59]3V(;T
MMZ\*<-<OP&V77H![__OP[OSDR_#^_*MV=O/]]OSZ?OAP>7.M"G&WD 5]VGGW
MV768S((6HVWXC!QLN.KP5J5H&% L/%%P:@*'- (79W>LL%1;C4:?R]1[>O5E
M^.I;*MWB73*2!:S8H("L$+X;49"#IM=DZAEP/IP0 )R CS)PGY]=AS]:$[_
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
M]FGR?HFM;R":VTKR[X:%O<_B83F;A.VQZ+]PO1&S8*]OD_[M6K];F0Z)'RJ
MR8=--,MIYK21<^;UWLM]03E3C_G*R%=&_F9&OE  -HZ OV]]"$/?JFGI0;1T
MRU!(3ALI/=T.3"'Y%U'$V[21SFFM-ZA(X&$)O2@=I4P=)5^9V?[K*$EB4FJ*
M\DV\/>L J]<.SC&1O_-4Q?A<$2VS3N?+O:T#T24*R6)HMDYKW7XYSHUC;FE7
M.5++)J&,DL+]UR.VGL[0K0\JK$)4L@'>DB*?M8METFIC-BII 1TC-4&V.<A!
MS?R9;68B1\5=[S-JB9M41_PAH>+L:%M8<Q;5-I("9EJ^8;M8IF<Y6C"V?%&*
MAF6!:_>@&[3ZN7G4? W7(A]:Z%2W3C78 VWZ"O<<]:LKNB'=2@H.+S6DL<(8
MBZ++@NFR51Y=7KB\>67<80N$E=7CX+ON&>-B&QQ\"AL<8''I5+=CO$+VXN3E
MT%0:3"T0+.IF07U&3,9[2L&?CS/M>6H'UL2>R183=#3X7)?EP).0*E?PE/9&
M'LD-V$OL)UPSXJTZOO.36#'M/C?[: '[:"^J';_4^,WQ^FC7(0@M%DY'%=-P
M(6,+>)FY+M\I34DHK:9Z*AT-C[I-'1< N])\#F6UY+$<:F,(VYA,//<G($K
M[)E8*8,*\FO_JU$_H=OSTNM=6<C#(":9;T:QO6Z8%-A,;9#%X<FO&YMCS>LP
M,6+C+9YD,P;>U,!GL@L"*$3^]/'?S AD\P-!BGA8ZA 1[PFQE(#Y,,#<K-6R
M;0W9#D<.[3%BM/@-_)G%;&'+<TK>$KZ+EXL_H4X36;C7+9 #_WF'*$5/?+<<
MZWGZ7 IGQ@XW*7H=7G(6)').D%X;$OK/TB#10.Y4F9[+%>S2L=!8CW<\H;:7
M(]WRHG9P)&<JU_)1]!QW,M>.&G&MZAG7*2S]!L!5#>=3B0FV="^9X$X;LI8R
MU5"!.T_,L*8!^P6)C5VE[!D7_?GI.UXU4QWZ7JNEZVHV,!!L ,V[3,0L4A8>
M!TJF<H!:-I3SM9Y44%Y!^*OY;,YA\@K08=CRM'[:S\-A<_3+[*3DP:^&?EXI
M5\5BMPVZ;V:IEV5U;Y5=6:,VR2DJ\7PRZJ&+SA4:='<CR?GFH&Y926'4SGF1
MU^3NY-P#V-:7N7A$)^=L(=K=2(@>+<!372.UE1*TNY$$/5HH=T&"UA<5E3FT
M3@A3Y9%Y][GD]M]3QV.&^^3 IM&_&R&8QOC$1K@Q&\<Z2G=Q&(^8N!X])]KF
MIC5WC4G*53*DU]Q=-M \A85#<'C;X'2""_W^_+U$+?'OSUP_N':#_V6PC 1H
M]";^HWD"W(C(6O7%*0]S1,;;+EL^W:$A+N\1KS*\:M%S><%7$#6"?O-LH8WN
M:4<WPUG>A>N)C_"YY%RB7BMU+A'J=PE&)[.9^!60^G>LS>-3!HNIQO +21&'
M92&()\504QYCS,Y_Z.7L#O-@!=@Z^](QK1?+G.HV,96O%C"QP/76M8F_N:Z)
MW >8!4LR%?\!-"F?[_-_IF",@M)T,[IG!AAU@<5$1&I#ET*_UNED3X:M9<(J
M305-4?0/ E;-VFEKL1U.$E:$D1GPRNEV.1!X-5.2[)/PBJO;->ZUD@X74 G@
M=R=RQYHI3A^.;1!Z7CBRP9YITPG"6\S-Y=$&H?>1;N&9RY3(1&;0@M)!+A9@
MH7^Q0'A:0 WA&012O92LQ8G-:)"#^K+TRG[.Z-Z:&)'B!<V==X*L<L%8*S(O
M/"4J9V5FW\4$0R8L4XH "^!&589E,\7SO@J6"?&9"<_.5KA5=>'9K'<&&\!3
M^&2KI$&JF=EP,WTU,UO-S/ZTC9G9::5""%Z.HIP8^7/R'9N/ZI'Z'##%9RL@
M1RGH<G@4"_BB8X":]I47E4R]]#$\F$&4,H8GI5KB#6#.J/:K;L%$N[?#8@B<
MEY!1IM010H2F*M07IBGL;I-G-]^_7SY\/[]^N->&UU^ULYOKA\OK;^?79Y?G
M]Q_G-J:2XE-\2[>N%]BH7?VN>X#NVOT4<Y6![VOW5L"4MPDV<9E=;A-V*&B!
M>*QI1!HZK&?$7?JV"P:C]H=EV\ H ["U[BST&O_EN*\.5AU0'4SF59#;7U0(
MA.;?->F=.F@PGN5R.UB[LG NGQAER/Z>XI@^L0OT&],02E! ?>W<>;$\UT$V
M36]P ['G(?+JF?:>!R",3^>W0_Y/\].'NO;'V +6F!JGD">H:3<>>X(WP3U,
M1YC63D%]^)=EXU1&TX7E,V#JN '7AS@#IL7F88<.#!PS.M)!-P@'SLLE$O,B
MO>=7.#!PW!E8X<^:Z>F6@[ $LUW7'!3\L YN<.*Y /+XKR>>]<+M=;@H9J:\
M#2_,MZU)71O:OKM" T]%EA@HZ9+A]+QJX'%&9P+PAR4" JY?V43W EEGD+S(
M_P&K!H$<7M_-U_/_">^/*AQ<5"U <]%L2W_D5P)H)@"-6_'8&(P:G'V9?/<=
M\R>NX[.:%K=[N"_I*GS7T BBU<_.[\ZNXO@S!*PD-PB.S:;:BB?NX,"7C)CN
M6^(U?C U9Q)U<Q '][IPN.D::J^3;/_I:2.E)K791_4&3,4ST'[AGA'0LVO
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
M^+!\60XW TH2?B1""J&"R&T*?RX5F$2*MW";D5H07SH__SY6U!([^.WQ\Q#
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
MN[RM@&ZDY7T4N<%5RLG*SK7JY<N_>""_QLWHP=,=?X3!VF^N:]YX]WSZ%D6
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
M7VD6U9YG3+[U514<3HW0YXEA32DXF_RT^#@'48F3+Y!\:+!0_J"G3A!;"D'
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
MPM>4< VZ5OY5)GC>\'S<B)_+8S*J<]/E@%+35V6+QE,N<KN?+WFBX-2(,@'
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
MU\X"=^(53HG?CU>BKL2H2VAJ7=C2J6)VPI0=_+9;1%P'OXEM_=0U>![N.S*
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
M$05465-*0?: NE* 93G=J?VLF\S7!"HQ1;\=M7JIW>,P02S'918&#N'D'O#
M7^=#L,QT18H94;E671Z"&*4R;EJP)<&& >(U^FP] 7K^Q[=2F1E+:_<M]0#D
MY'V[B"Q@;JP=>/N6NR%$MJ^:B_8,\C^?9BK<-S*D"QO(EI9T8:4+*XH+NR<'
MU['=]P_JF&J>06]'?RB&QV6EJ?W; X*-INCOJBHPG;O6QVVO\7'W+]1XU)Q)
MM>"ER.5E5+25RD?R127;D9O;^^&W/\&S)'>7=P-R?GM]U[_Y*[?-"2\-9 #R
MD8,T:YP05W=Q#<&OOGB *P%W?_2O'OO#R]L;TK^Y(/]^[%]=?OD+O&32/S^_
M?;P9/N3_0F\N+,-0;(?[*);G@'WDO,UW33$QZNT$AODR>7W_X#W#(Z?K! 83
MG/&RHA,K*[8(4/D*::2;[&GQ$:NL=,%VH2\_HRL2_=K+2>@A[@^6!VR_^>M)
M8[UMEF^VZ#ZC=1'A]?3ILV)P[]$EGRE<;J*3:(VX* J"=P=;S9V?Z19^^)[8
M8WT9J^3)G'B2^ZSHB.?%AK8UTET,#N2T #S3ER@H-PHNJ!\]SHD'1[;UG-.C
M_4B8A$#)(3 W3G)BQ(&I26,H?':;6?'''A.XVDD="/9>\\&H]Q>>& W8B='L
M5*U9AY<'IW3Q4/P(/*N]MYO(ZXV*?G])$='N+RDBVOV/A2([*NC%QC5[6:\X
MA9@GG_J&8;TP\Q+K++& P!UY!E'\"'"LAMYW0<CANR+_:\5SSX3JXMU;:(.A
MAVNIYI'\@*+./)O"&4XG/*5B]M<OEGUN4TUW,<J2)J$B^0&^D[)5"4:OMJ(&
M(]?VV$<DW#/;L=BSV@2&33G()6?>]2.M0\M/0?*;YFW.RZV33ZUF;2TO%X7<
M1;]_++LFU:WV8K(S!>3764QTRZ&KG>6LS_V1^&VYK8<]ABHW%<:]9>M!%([>
MQ7KH=E9TL\K7>A _4BB6(S)C$*)$71(ZHBS?/C050G$<>I2^R9I'">:.G.WN
MCBQ?=CNZ\"D^5%[[C-#YRI=.I=Y83J 70,(4SR 3S3\Y2SE-1"QFSM)=:;2D
MNR+*_3=V5\YBRFS$9]\=O9=Z<\5P4NF]')E]<=;8W6$IA'W1:*QGZ>)Y,#%'
M*0O<5ZY?I4.X=;I(_4RFBQ3GC8I^?TD1T>XO*2+:_8^%(C)=1*:+'&NZR%DK
M)C[;*_B!3PL<IL[ZF%6NX5C)\#DQ?,HQ0<>2;M+$_DDKQGQ(+)0 "XG!X;B!
M.N*!8==H<%>8U,$C"Q4+SOI)G-^5:;+%"1,?=5Q3)KH<Q4%43.;<IHY4 0ZB
MSBHM[/HNGH213)\'TZ><X2,6_V?J6[56C.Z1:#A.-"2X4\U:7"M@X>&PHW?5
MK'3:PL07CLR_$H_]D[B_+E-]"^QCR50<F8J352I.3Z;B%.>-BGY_21'1[B\I
M(MK]CX4B,A5'IN(<Z9%4L]:,\9^ZQ3^2:G6%K+V6#)\[P[?238 ZHE2<5NM,
M8J&T6$B,'<?EI8D'AAV#Q8V.,*&S(PL5"\[Z29S?D2G(Q0D3'W5<4Z;B',5!
M5%QNWX:.5 $.HNJU2JLN<W$DU_M<W\O4@"Q@+DZ]TNW);)Q2X2'1HXI+3A,>
M$+LZ6)5N1Q@,')F+)1[[)W!_O2;SD?-WL][Y<T/?L9&GH4'1"W.A<QO*&RRY
M/'/A'U+-A:_+L?!R+/P'0<;"YR0;'BZ_WO2'C_>#R+CMW&>K'W(!__4<5Q]-
M80UWGNUXP&7$M8@[IL2F?WNZ39^1)Y _'BA3/7RI]2:Q;%)OO]'>XM_P>OB[
M!Z)%A]4-7M6Q8GZGI*^Z^.?Z6;-5\6_Z77=<&Q\S5ARB><:4J(KGX(37L>[
MWR>6S9;P1(D#*X0_H-J')3S1L6*,R-.4W0CD!+7Y!>S.-O5,^!:[H>*Y8\N&
MMX<_62:[O/71\28K H*N-?G \.S+IWH#A-5\!R?NR2=W_/$=W,"GDZ9,\:VN
M%5L=XQBW>C5?RBUPS\;#QR,V!!/5X0'AM0_A=]EPN*$O"OWIXL%T='LF4N86
M3 Q1^(+:K6H[88A?)M,6EV'(;)S0*F-F<JY<<>M0Z[VYO1]^^W/P,"1WEW<#
M<GY[?=>_^2OA+=:MO);S5G.CLL!LLI8UJG51%^D?B_CKK%7/1%VH9-<C9-?/
MTPT7&!U1S*<3XYSBP*$X("//3,IW#^_X9H?_31[.;X=#_O/U[<WP_O;A8?FJ
M5?^6N"@W+G99Y"%9'[TI%;#('*E(U.7ITS7<R;8<)UHR(_E9(%:1_+S,SQ?@
M_:JN95?(G4T='9TAGZ$K_G^)8FKD?*S3$7^MP2OXP*[^D_)?;T<C7:7V,;!]
M$.?E<9MYK%?&2F)C)2GC(?. !P9#GB@U@YC'$S6LER#6,;+P4 &\=3*AMF.9
M#D8U_'"(_[!07 5Y4N=1#U5!+Y\M 9QYX#'WN$,B\1QR%/$0WSM+:_4>5O'#
M!XKKV71#21?Q.(550)OM?+MVR)T?ZJX1N^L;6RS/NJ89]&#LLRTQ(LL4EF4B
MJ]P_1V1ONXHG9F)=:_[O^\OS;_W["]*ODOO;Z_[-GIUK8;DNY'0<BN4"$]DW
MA!7=AAL&-LEG2[&UH@FFL'2]U\%LLS7&6'C##=6;E%5[EU52:TE.**C6.GQ4
M6%C&RU%QA6([E;31G,QB@P?VTC \2W:.Q4HNFJ_QS<36356?* 9?+8URC,4Y
MYJU4<\*NLFAJ3M@P4(*FZ_?O;WVG[,_+J]\O;Z2B2^:[O09''ZBI6S9?^A\@
MGOA/(2T8TH!?=%,!^1:(-U\#<CUIV1/+5ES_^P]4M:FKV$NG^(51CWW%MDSR
MIV[\T$VI'?>A'4=1;D(N\MLTZ>;WC#7F(;EH=Y)(KMGC";QD@-(R0*',I&L,
M8P^NR'F5?+GOWSS<RD#VX>,!A9([8?/E&F/5U&#<8RNF8VT:K99\(>/4TH&7
M:FG)>[_NWUSTR565_/YX-7CH2Z4DE5)JGQINHBF,=SR#.HI426()(M'UD60
MJ8GF__Y]<#G\1NZKY*I_+[TCJ8@V4$2_4]T=,]91;.D:"2>&I!XJ.0,42@_]
M=OOMIDJ&57+7?SC_UK^2BD@JHK2*Z#=K;#+641QUK!A2$8DEA\(L$=QV"\)L
M]U6^84O?W?A%"-XR:("%[T*BXA4+STS"A2QVO*Y5"/[S5@#1^N?EU=5E_YH\
M5,E? [#RKP9_2>DJI6M:Z?JG;ABZ\LS8AX*E;]"IE+#E+@\.M?6[ZC\,3^>-
M"X-2S*76C\'KK>X6N+JAXZP+(U]&</VJSGFS!GC\)_@1^!4W\A\?WXW=9^/3
M/_X?4$L! A0#%     @ TX%D4L/8.MJD @  Z1    T              ( !
M     &5X7S(R,S<V-RYH=&U02P$"% ,4    " #3@612Q]4U@FL#  !@#
M#0              @ '/ @  97A?,C(S-S8X+FAT;5!+ 0(4 Q0    ( -.!
M9%()*G *#@@  ,\W   -              "  64&  !E>%\R,C,W-CDN:'1M
M4$L! A0#%     @ TX%D4NJKTF3W!P  N#(   T              ( !G@X
M &5X7S(R,S<W,"YH=&U02P$"% ,4    " #3@612HL.9,:P$   M&   #0
M            @ ' %@  97A?,C(S-S<Q+FAT;5!+ 0(4 Q0    ( -.!9%)\
M*>OZLP0  *@5   -              "  9<;  !E>%\R,C,W-S(N:'1M4$L!
M A0#%     @ TX%D4ES$7^_1U0  ?ND   H              ( !=2   &=R
M87!H,2YJ<&=02P$"% ,4    " #3@612A--!<%@<   :9@$ $0
M    @ %N]@  ;G=P>"TR,#(P,3(S,2YX<V102P$"% ,4    " #3@612'YEV
M5QL7  "PB $ %0              @ 'U$@$ ;G=P>"TR,#(P,3(S,5]C86PN
M>&UL4$L! A0#%     @ TX%D4KU<&:?&<@  )>$) !4              ( !
M0RH! &YW<'@M,C R,#$R,S%?9&5F+GAM;%!+ 0(4 Q0    ( -.!9%(1:AL(
M!Z$  %' "  5              "  3R= 0!N=W!X+3(P,C Q,C,Q7VQA8BYX
M;6Q02P$"% ,4    " #3@6126(*A;OAW   %C@H %0              @ %V
M/@( ;G=P>"TR,#(P,3(S,5]P<F4N>&UL4$L! A0#%     @ TX%D4DO$2?^"
M6P( )BL> !0              ( !H;8" &YW<'@R,#(P,3(S,5\Q,&LN:'1M
64$L%!@     -  T )P,  %42!0    $!

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